fgets()は、EOFにすでに到達している場合でも、常にcharバッファーを\ 0で終了しますか?そのように見えますが(ANSI K&Rの本に示されている実装では確かにそうです)、確かにお願いしたいと思いました。
この質問は、gets()などの他の同様の関数にも当てはまると思います。
編集:「通常の」状況では\ 0が追加されることを知っています。私の質問は、EOFまたはエラー状態を対象としています。例えば:
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);
}