Nach der Suche scheint es das ASCII von EOF zu sein -1, aber wie kann ich echoes herausfinden?
Mein Zweck dabei ist es zu testen, ob es sich genauso verhält wie Drücken, ctrl-dwenn ich gerade echoraus bin EOF.
Nach der Suche scheint es das ASCII von EOF zu sein -1, aber wie kann ich echoes herausfinden?
Mein Zweck dabei ist es zu testen, ob es sich genauso verhält wie Drücken, ctrl-dwenn ich gerade echoraus bin EOF.
Antworten:
Es gibt keine Möglichkeit, einen EOF wiederzugeben. Ein EOF kann nur generiert werden, indem entweder das Ende einer Datei erreicht wird oder indem der auf die eofTerminaleinstellung gebundene Tastendruck ( CtrlDstandardmäßig) aufgerufen wird, wenn die zu lesende Datei an das Terminal gebunden ist.
intmit dem Wert -1 (oder 4294967295, wenn wir die vorzeichenlose Version berücksichtigen) kann ohnehin kein Zeichen sein, da Zeichen nur einen Wert von 0 bis einschließlich 255 haben können.
int?
fgetc(3)Manpage anschaue .
In bash können Sie schreiben exec 1>&-, um den als stdout bekannten Dateideskriptor zu schließen.
Wie Ignacio bereits sagte, ist EOF kein Charakter, daher macht die Frage, wie man "EOF" wiedergibt, überhaupt keinen Sinn. Sie können Zeichen (Bytes) wiedergeben oder einen Dateideskriptor schließen, aber niemals einen EOF wiedergeben.
EOFwie-1in stdio.h definiert ? Warum kann ich es nicht wiedergeben, wenn wir seinen ASCII-Wert kennen?