리눅스에서 EOF(Ctrl+D)에 대해서 자세한 설명좀 부탁드립니다
글쓴이: aubin / 작성시간: 화, 2014/05/06 - 5:57오후
int a;
a = getchar();
while(a != '\r' || a != EOF) {
a = getchar();
}
foo();
-----------------------------------
제가 대충 알기론 리눅스에서 Ctrl+D 하면 바로 EOF가 들어가서 while루프를 나가서 foo()를 실행할줄 알았지만
실제로는 Ctrl+D를 두번 보내야 foo()로 넘어가더군요
왜 그런지 자세하게 설명해주실분 안계신가요?
Ctrl+C는 그냥 프로세스 강제종료니까 한번만 입력하면 foo를 실행안하고 그 자리에서 종료되는건 알겠는데 Ctrl+D는 어떤 원리이길래 한번에 while을 못나가는지 궁금합니다
Forums:
while(a != '\r' && a != EOF)
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기