C · Intermediário · Inglês · Técnico
strncpy
Função que copia no máximo n bytes da origem e preenche o resto com zeros. Se a origem tiver n bytes ou mais, o destino fica sem terminador nulo.
Onde usar
Muita gente a toma por versão segura do strcpy, mas não é. Depois de usá-la, force dst[n-1] = '\0' ou prefira snprintf.
Em código
char dst[4];
strncpy(dst, "abcdef", sizeof dst);
dst[sizeof dst - 1] = '\0'; // garante o fim
puts(dst); // abcExemplos
strncpy doesn't terminate the string when it truncates.
O strncpy não termina a string quando trunca.
Set the last byte to zero after strncpy.
Zere o último byte depois do strncpy.
Cuidado
Tratar como strcpy segura: ela foi feita para campos de tamanho fixo e não garante uma string válida.