cat
인수 없이 터미널에서 엽니다 .
cat
그런 다음 텍스트를 입력하고 을 누르면 Ctrl+D
내가 입력한 내용이 에코됩니다.
텍스트를 다시 입력하고 을 눌렀 Enter
더니 내가 입력한 내용이 에코되었습니다.
Ctrl+D
와 사이에 차이점이 있습니까? Enter
(텍스트가 없으면 Ctrl+D
send EOF
및 Enter
not이기 때문에 이 키 중 하나를 눌렀을 때 터미널에 텍스트가 표시되는 것에 대해 이야기하고 있습니다.)
답변1
enter
터미널 장치 라인 규칙이 현재 입력 버퍼 플러스 \n
( \r
라인 규칙 설정을 통해 터미널(에뮬레이터)에서 보낸 것에서 변환된 것 icrnl
)를 터미널 장치에서 읽고 있는 애플리케이션으로 보내도록 합니다. ^D
터미널 장치 라인 규칙이 \n
"or" ^D
문자 없이 현재 입력 버퍼를 보내도록 합니다(먼저 보내지 않으면 라인 규칙에 의해 먹히게 됩니다 ^V
).
^D
두 번 누르면 cat
더 이상 읽을 내용이 없다고 가정하기 때문에 종료됩니다( read()
0 바이트 반환).