Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

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?

2 respostas
solução!

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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software