Ich habe cygwin auf Win8.1 ausgeführt, und während Eingabe von Eingaben zu einem Programm CTRL-Z verwendet, um EOF zu bezeichnen. Heute habe ich cygwin auf win10 installiert und "a.out" ausgeführt. Nach dem Eingeben der Eingabedaten, wenn ich STRG-Z drücke, bekomme ich die Meldung "Suspended" und ich bekomme die Shell-Eingabeaufforderung zurück. Ich habe das mit bash und csh versucht, dasselbe Ergebnis. STRG-D funktioniert auch nicht, es zerstört die Shell.Was ist EOF in cygwin in Windows 10
Nur um zu bestätigen, dass es nur dieses Problem und nichts anderes ist, habe ich eine neue Datei input.txt erstellt, die relevanten Eingabedaten eingegeben und "a.out < input.txt" ausgeführt, und es hat funktioniert fein. Das Problem besteht also nur darin, EOF für STDIN zu definieren.
Wie löst man dieses Problem?
Hinweis: ich diese Frage bin zu schließen, und reading till EOF in java on cygwin on windows-10
ctrl-z ist der Unix-Befehl, um den Prozess zu unterbrechen. Haben Sie MSYS in Betracht gezogen? ctrl-D arbeitet dort. –
Überprüfen Sie, wie der Tastaturtreiber Signale mit 'stty -a' generiert (suchen Sie unter' chars' nach 'eof'). Sie können die Einstellungen auch mit 'stty' ändern, aber ich empfehle das nicht. STRG + D "killt die Shell", weil Sie die Shell EOF senden. Du könntest 'set -o ignoreeof' verwenden. – cdarke
Jean-Francoise: Ich benutze Cygwin, nicht msys. – R71