【发布时间】:2012-01-14 10:50:16
【问题描述】:
手册页说:
fgets() 成功时返回 s,错误时返回 NULL,或者在未读取任何字符时出现文件结尾。
我写了一个小的 C 文件,它调用 fgets 来测试它的行为。我特别想看看在输入某些字符后发生 EOF 时会发生什么。我在 bash 上使用了 eof 组合键 (Ctrl+D)。我必须按两次 Ctrl+D 才能让 fgets 返回。它打印出输入的字符,直到我按下 Ctrl+D 两次。输入一些字符后按一次 Ctrl+D 完全没有效果。如果我在此之后输入了一些字符,它们将存储在传递的数组中。为什么 fgets 会这样?
【问题讨论】:
-
我不清楚你想了解什么。您想了解
fgets的行为还是您在键入 Ctrl-D 和其他控制键组合时终端的典型行为?
标签: c