¿Fgets() siempre termina el búfer de caracteres con \ 0 incluso si ya se alcanzó EOF? Parece que sí (ciertamente lo hace en la implementación presentada en el libro ANSI K & R), pero pensé que podría preguntar para estar seguro.¿Fgets() siempre termina el búfer de caracteres con 0?
Supongo que esta pregunta se aplica a otras funciones similares, como gets().
EDIT: Sé que \ 0 se agrega durante circunstancias "normales", mi pregunta está dirigida a EOF o condiciones de error. Por ejemplo:
FILE *fp;
char b[128];
/* ... */
if (feof(fp)) {
/* is \0 appended after EACH of these calls? */
fgets(b, 128, fp);
fgets(b, 128, fp);
fgets(b, 128, fp);
}
Compruebe siempre el valor de retorno de 'fgets()': 'Si (fgets (...) == NULL)/* variedad indeterminada * /;' – pmg
Puede que tengas razón, sin embargo, Veo que hay otras respuestas que indican que '\ 0' siempre se adjunta, incluso si' fgets() 'devuelve' NULL'. – Ree