1

我目前正在编写一个 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 被忽略的任何建议?谢谢

4

0 回答 0