1

私は現在シェルを書いています。いくつかの機能を実装していますが、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