ExpertiDict

C · Intermediário · Inglês · Técnico

snprintf

/ˈɛs.ɛn.pɹɪnt.ɛf/substantivo

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

Veja também

Todos os termos de C