我目前正在编写一个 shell,我实现了几个功能,但我想让 Ctrl-D(EOF 字符)几乎过时。或者至少在它实际退出之前将其切换到一个非常高的数字。我不确定如何实现它。现在我有:
while(!feof(stdin))
{
if(fgets (buf, MAX_BUFFER, stdin)) {
arg = args;
*arg++ = strtok(buf, SEPERATORS);
while ((*arg++ = strtok(NULL, SEPERATORS)));
if (arg[0]) {
if(!strcmp(args[0], "clr"))
{
clr();
continue;
}
//// more commands follow
}
我想也许只是在循环中的某个地方说:
if(feof(stdin))
continue;
以为会跳过它并继续,但那没有用。关于如何让 ctrl-d 被忽略的任何建议?谢谢