【发布时间】:2009-05-27 14:46:27
【问题描述】:
我正在构建一个执行各种命令的小型 shell 解释器,我通过分叉我的进程来完成此任务。
但是,我希望子进程停止等待标准输入流中的输入,并且它通过期待 EOF 来实现。如何故意将 EOF 推送到该流中?
更具体地说,如果我在这种情况下循环:
while (fgets(&input, 1024, stdin) != NULL) { // .....
我怎样才能让它变成假的?
【问题讨论】:
-
您需要提供更多信息。孩子的标准输入是否连接到父母(又名协同进程)?还是……?
-
@Chris EOF 通常是 -1 的#define
-
说 EOF 可能比 -1 稍微好一点,但我不知道它在大多数情况下是否重要。
-
是什么让你认为 putchar(-1) 会像提问者想要的那样做?