2016-09-03 6 views
0

win8.1에서 cygwin을 실행하는 데 사용되는 반면 EOF를 나타내는 데 사용되는 CTRL-Z 프로그램에 입력을 제공합니다. 오늘 win10에 cygwin을 설치하고 "a.out"을 실행했습니다. 입력 데이터를 입력 한 후 CTRL-Z를 누르면 "Suspended"라는 메시지가 나타나고 쉘 프롬프트가 나타납니다. 나는 bash와 csh, 같은 결과로 이것을 시도했다. CTRL-D도 작동하지 않고 쉘을 죽이고 있습니다.Windows 10의 cygwin에서 EOF는 무엇입니까

단지이 문제 뿐이라는 것을 확인하기 위해 새로운 input.txt 파일을 만들고 관련 입력 데이터를 입력 한 다음 "a.out < input.txt"를 실행하여 제대로 작동하는지 확인했습니다. 벌금. 따라서 문제는 STDIN에 대한 EOF 정의에만 있습니다.

이 문제를 해결하는 방법은 무엇입니까?

참고 : 나는이 질문을 폐쇄하고 새로운 질문을 포함하여 유닉스 계열 시스템에 reading till EOF in java on cygwin on windows-10

+0

ctrl-z는 프로세스를 일시 중단하는 유닉스 명령입니다. MSYS를 고려해 보셨습니까? Ctrl-D가 작동합니다. –

+1

키보드 드라이버가'stty -a '로 신호를 생성하는 방식을 확인하십시오 ('cchars'에서'eof'를 찾으십시오). 'stty '를 사용하여 설정을 변경할 수는 있지만 권장하지 않습니다. CTRL + D는 쉘 EOF를 보내기 때문에 "쉘을 죽입니다". 당신은'set -o ignoreeof'를 사용할 수 있습니다 – cdarke

+0

Jean-Francoise : 저는 msys가 아닌 cygwin을 사용하고 있습니다. – R71

답변

2

에서 자세한 내용을 넣어하고 Cygwin에서, Ctrl-D를 (기본적으로) 끝을 트리거하도록 구성되어 tty (터미널/키보드)에서 읽을 때 -of-file 조건. stty 명령을 사용하여 이것을 변경할 수는 있지만, 그렇게하지 않은 것처럼 보입니다 (그리고 거의 확실하게해서는 안됩니다).

표준 입력에서 읽는 프로그램을 실행하는 동안 Ctrl-D를 입력하면 입력이 끝날 때 응답하는 방식에 따라 프로그램을 종료 할 수 있습니다.

Ctrl-Z는 현재 프로그램을 일시 중지하는 신호 (대화식 셸과 같은 일부 프로그램은 해당 신호를 처리하거나 무시할 수 있음)를 보냅니다. (Windows는 Ctrl-Z를 사용하여 파일 끝을 트리거합니다.)

설명하는 동작은 쉘 프롬프트에서 Ctrl-D를 입력하고 있음을 나타냅니다. 이렇게하면 프로그램이 아닌 쉘과 파일 끝 (end-of-file) 조건이 제공됩니다. 쉘이이 작업을 종료함으로써 응답합니다 (기본적으로 set -o ignoreeof을 사용하여 쉘이 무시하도록 지시 할 수 있습니다).

프로그램을 실행하는 동안 Ctrl-D 을 입력하면 파일 조건이 올바르게 트리거되고 프로그램이 종료되어 프로그램이 종료됩니다.

업데이트 : 일반적으로 다른 입력 전에 Ctrl-D를 입력해야합니다 (결과적으로 프로그램에 입력이 전혀 안됨). 또는 Return을 입력 한 직후에 Ctrl-D를 입력해야합니다. 줄 중간에서 파일 끝을 트리거하려면 Ctrl-D 을 두 번 입력하여을 입력해야합니다. (대개 좋은 생각이 아닙니다. 프로그램에서 줄 바꿈 문자가없는 부분 행이 표시되기 때문입니다.)

+0

Ctrl-Z는 랩톱에서 win8.1을 사용하여 EOF로 작동하는 데 사용됩니다. win10을 사용하는 새 랩톱과 cygwin을 새로 설치하면 더 이상 작동하지 않습니다. 권고대로, 나는 이제 "set -o ignoreeof"를했다. Ctrl-D를 누르면 해당 입력 뒤에 Ctrl-D가 무시 된 것처럼 보이지 않습니다. Ctrl-Z를 누르면 "Suspended"대신 "Stopped"라는 메시지가 나타납니다. 그러나 어느쪽으로 든 프로그램은 그 시점에서 멈추고 예상되는 출력을 출력하지 않습니다. 아니, 나는 stty를 사용하지 않았다. – R71

+0

'stty'의 출력은 무엇입니까 (인자 없음)? –

+0

속도 38400 보오; 라인 = 0; ixany – R71

관련 문제