나는 이것을 잠시 동안 작동시키는 데 어려움을 겪고 있었기 때문에 파이프가 어떻게 작동하는지에 대한 근본적인 오해가 내 문제의 근본 원인이라고 생각합니다.
내 목표는 netcat
파일 시스템에 원격 호스트에 대한 TCP 연결을 시작하고 들어오는 데이터를 얻기 위해 프로세스에서 읽을 수있는 파이프와 나가는 데이터로 사용되는 프로세스에 쓸 수있는 두 개의 명명 된 파이프를 갖는 것입니다. 현재 다음 구성을 사용하고 있습니다.
mkfifo in
mkfifo out
cat out | netcat foo.bar.org 4000 > in &
여기에서 다른 프로세스가이 열린 TCP 연결을 읽고 쓸 수 있도록하려고합니다. 이것이 "정상 작동"해야합니까, 아니면 이와 같은 구성이 작동하지 않는 이유가 있습니까?
무엇 보인다 현재 발생하는 것은 내가 읽을 수 있다는 것입니다 out
문제없이,하지만 난에 쓸 때 in
나는 출력 죽은 깨진 파이프와 이후의 모든 통신이 나타납니다 언급을 얻을. 생각?
(관련 : 나는 원래 사용 :
netcat foo.bar.org 4000 < out > in &
그러나 입력 대기를 차단하는 것으로 나타났습니다. 이것에 대해서도 궁금하지만 별도의 질문으로 해결하는 것이 좋습니다.)
write(stdout): Broken pipe
쓴 후에 (또는 곧) 쓴다out
.