我正在用 C 编写自己的 shell,我需要检测 EOF(当我运行时./myshell < commands.txt
)
commands.txt 包含:
ls
pwd
这些都在程序中单独运行良好。但是当我用文本文件运行它时,我得到一个无限循环。
在我while(1)
的 shell 循环中,我做的第一件事是:
if (feof(stdin)) { my_exit(); }
my_exit
很简单:
void my_exit() {
printf("End of file! Bye\n");
exit(0);
}
不exit(0)
结束程序(和循环)?为什么我越来越
文件结束!文件结束!文件结束!文件结束!文件结束!文件结束!再见....等
我也尝试过这样做fgets == NULL
。相同的循环