私は現在シェルを書いています。いくつかの機能を実装していますが、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 を無視する方法について何か提案はありますか? ありがとう