![터미널이 원시 모드에 있을 때 Ctrl+D를 누릅니다.](https://linux55.com/image/120955/%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%B4%20%EC%9B%90%EC%8B%9C%20%EB%AA%A8%EB%93%9C%EC%97%90%20%EC%9E%88%EC%9D%84%20%EB%95%8C%20Ctrl%2BD%EB%A5%BC%20%EB%88%84%EB%A6%85%EB%8B%88%EB%8B%A4..png)
터미널이 원시 모드가 아닐 때 텍스트를 쓰면 텍스트가 버퍼에 배치됩니다.라인 버퍼), 그리고 를 누르면 Ctrl+D
해당 버퍼의 내용이 내 애플리케이션으로 전송됩니다.
하지만 Ctrl+D
를 누르고 터미널이 원시 모드에 있으면(즉, 터미널에 작성한 내용이 버퍼링되지 않고 내 애플리케이션으로 직접 전송됨) 일부 ASCII 코드가 0x04
(아마도) 내 애플리케이션으로 전송되면 어떻게 되나요?
답변1
당신은 그것을 확인할 수 있습니다strace
쉘 1에서:
$ echo $$
1234
쉘 2에서:
strace -p 1234 -f
쉘 1에서:
$ stty raw
$ cat
[type something including ^D]
Shell 2에서는 다음을 볼 수 있습니다.
[pid 12345] read(0, "\4", 131072) = 1