유닉스에서, 나는이 FIFO를했습니다 처음 표시되지 않습니다 내가 tail
그것을 읽으려고 :
읽기 FIFO는
mkfifo fifo.file
tail -f fifo.file
가 그럼 난 다른 프로세스에서에 메시지를 작성하려고 그래서 나는 다음과 같이 수행
abc
def
:
cat > fifo.file
은 그 때 나는 다음과 같은 메시지를 입력 0
입력하기 전에 Ctrl-D
, 첫 번째 프로세스 (tail -f fifo.file
) 때 아무 것도 인쇄되지 않습니다.
그런 다음 Ctrl-D
을 입력하면 위의 두 줄이 인쇄됩니다.
지금 cat > fifo.file
을 다시 입력하면 qwe
과 같은 한 줄을 입력하고 줄의 끝에 Enter
을 입력하면이 문자열이 첫 번째 프로세스에서 바로 인쇄됩니다.
나는 같은 명령으로 두 가지 다른 행동을하는 이유가 궁금합니다.
첫 번째없이 cat
을 입력하면 두 번째 동작이 가능합니까? Ctrl-D
대신 Enter
을 입력하면 메시지가 표시됩니다.