프로세스의 표준 출력을 버퍼에 저장하고 FIFO 스타일로 읽은 후 버퍼를 지우고 싶습니다.
나는 stdout을 파이프할 수 있다는 것을 알고 있지만 파이프/파일은 계속 커지고 내가 이미 읽은 데이터를 포함하게 됩니다. 나는 단지 새로운 데이터를 원할 뿐이다.
command > named_pipe &
데이터를 리디렉션할 다른 내장 방법(네트워크 소켓의 버퍼와 유사)이 있습니까?
답변1
명명된 파이프가 문제를 해결하지 못하는 이유를 이해할 수 없습니다. 이 예에서는 두 개의 쉘 인터페이스를 사용하며 shell_1
어떤 쉘이 어떤 I shell_2
/ O를 사용하는지 구별하기 위해 shell_2
.shell_1
$ mkfifo my_pipe
(shell_1) $ echo hi > my_pipe # Blocks waiting for a reader
(shell_2) $ cat my_pipe # Unblocks shell_1
hi
(shell_2) $ cat my_pipe # blocks -- does not print "hi" again
(shell_1) $ echo bye > my_pipe # Unblocks shell_2
bye # Printed by shell_2