Num programa em C, roda em Windows ok, porém preciso disponibilizá-lo em Linux, cujo compilador gcc me devolve erro, pois sprintf_s não está implementado. Teriam algum equivalente ao sprintf_s no linux?
Num programa em C, roda em Windows ok, porém preciso disponibilizá-lo em Linux, cujo compilador gcc me devolve erro, pois sprintf_s não está implementado. Teriam algum equivalente ao sprintf_s no linux?
Olá Alberto!
No Linux, o equivalente ao sprintf_s é o snprintf. O snprintf é uma função que permite formatar uma string com base em um formato especificado, evitando problemas de buffer overflow.
A diferença principal entre o sprintf_s e o snprintf é que o snprintf recebe um parâmetro adicional, que é o tamanho máximo da string a ser escrita. Dessa forma, você evita escrever além do limite do buffer.
Aqui está um exemplo de como usar o snprintf no Linux:
#include <stdio.h>
int main() {
char str[20];
int num = 42;
snprintf(str, sizeof(str), "O número é %d", num);
printf("%s\n", str);
return 0;
}
Neste exemplo, o snprintf garante que a string não ultrapasse o tamanho máximo de 20 caracteres. Assim, você evita problemas de buffer overflow.
Bons estudos!
Obrigado Lucas.