gcc 4.4.1Usando snprintf para evitar desbordamientos de búfer
C99
estoy usando snprintf
como esto para evitar una saturación del búfer:
char err_msg[32] = {0};
snprintf(err_msg, sizeof(err_msg) - 1, "[ ST_ENGINE_FAILED ]");
que añade el -1
para reservar espacio para el terminador nulo en caso de que la cadena tenga más de 32 bytes de longitud.
¿Estoy en lo correcto en mi forma de pensar?
Nota al margen: GCC no soporta C99: http: // gcc. gnu.org/c99status.html –
¿Conoces, sin embargo, un entorno moderno donde el combo de biblioteca estándar y gcc no incluye 'snprintf'? – LnxPrgr3
Cuando usaba MinGW hace uno o dos años, en realidad llamaba a '_snprintf()' de Microsoft, que no se comporta como el 'snprintf()' estándar (creo que no siempre termina la cadena). –