C · Intermediário · Inglês · Técnico
snprintf
Função que formata texto como printf, mas escreve em um buffer de tamanho limitado, sempre terminando em nulo. Devolve o tamanho que a saída teria se coubesse.
Onde usar
É a alternativa segura a sprintf. Compare o retorno com o tamanho do buffer para detectar truncamento.
Em código
char msg[16];
int n = snprintf(msg, sizeof msg,
"usuario=%d", 123456789);
if (n >= (int)sizeof msg)
puts("truncado");Exemplos
Use snprintf instead of sprintf to avoid overflowing the buffer.
Use snprintf no lugar de sprintf para não estourar o buffer.
If snprintf returns more than the buffer size, the output was truncated.
Se o snprintf devolve mais que o tamanho do buffer, a saída foi truncada.
Cuidado
Tratar o retorno como a quantidade escrita: ele é o tamanho desejado e pode ser maior que o buffer.
Antônimos
sprintf