cat
다음을 수행하여 매우 간단한 텍스트 편집기로 사용할 수 있습니다 cat > foo.txt
.
그런 다음 다음을 입력합니다.
bar
baz
ctrl그런 다음 +를 누르면 D이제 다음과 같이 보입니다.
$ cat > foo.txt
bar
baz^D
커서를 에 놓습니다 ^
. 다시 누르면 파일이 저장됩니다. 그러나 다른 버튼을 누르면(아무 것도 아닐 수도 있지만 대부분은 아무 것도 누르지 않음) 파일 편집을 계속합니다.
이것이 정상적인 행동입니까?
답변1
예. 그것은 그것과 관련이 있습니다 ^D
: 그것은 단지 현재 read(2)
통화를 중지합니다.
프로그램이 이 작업을 수행 하고 중간 키를 int rdbytes = read(fd, buffer, sizeof buffer);
누르면 현재 버퍼에서 읽은 바이트가 반환되고 해당 바이트 수가 반환됩니다. 라인이 종료될 때에도 동일한 일이 발생합니다. 항상 마지막 라인이 전달됩니다.^D
read()
\n
따라서 return은 ^D
줄의 시작 부분이나 다른 줄 뒤에 만 EOF를 나타내는 의도된 효과를 ^D
갖습니다 .read()
0
답변2
예, 이는 정상적인 동작입니다. 단일 Control-D는 일반적으로 줄 시작 부분에서만 중단됩니다. 종료하려면 Ctrl-D를 누르세요.
$ cat > foo.txt
bar
baz
^D