불완전한 읽기 액세스 후에도 명명된 파이프에 데이터 유지

불완전한 읽기 액세스 후에도 명명된 파이프에 데이터 유지

전제 조건:

$ mkfifo pipe1

몇 줄을 입력하면파이프 1

$ (echo line 1; echo line 2) > pipe1

모든 라인은 다른 터미널에서 읽을 수 있습니다

$ cat pipe1
line 1
line 2

여태까지는 그런대로 잘됐다.

하지만

후자 대신에고양이여러 부분 읽기가 수행되었습니다.

$ head -n 1 pipe1; head -n 1 pipe1
line 1

그런 다음 데이터의 첫 번째 행만 파이프라인으로 연결됩니다.파이프 1복귀(처음부터헤더 -n 1) 나머지 데이터는 손실된 것으로 보이며 두 번째 읽기 액세스가 중단되어 (새) 데이터를 사용할 수 있을 때까지 기다립니다.파이프 1.

어떻게

여러 개의 연속적인 부분 읽기가 가능하도록 명명된 파이프와 파이프 콘텐츠를 설정하시겠습니까?

즉, 이것을 얻는 방법은 다음과 같습니다.

$ head -n 1 pipe1; head -n 1 pipe1
line 1
line 2

관련 정보