두 개의 바이너리가 있는데 그 중 하나( questions.bin
)는 "1+3이 무엇인가요?"와 같은 질문을 던집니다. STDOUT으로 전송하고 STDIN에서 답변을 얻습니다. 다른 하나는 answers.bin
위 형식의 STDIN 질문을 수락하고 이를 STDOUT에 인쇄합니다.
나는 그들의 출력을 서로에게 파이프할 수 있기를 원합니다.
./questions.bin | ./answers.bin | ./questions.bin
파이프로 할 수 있는 방법이 있나요? 그렇지 않다면 달리 무엇을 하시겠습니까?
답변1
답변2
/dev/fd/x
Linux에서는 명명된 파이프처럼 동작하는 파이프를 참조하는 fd x 속성을 사용할 수 있습니다 .
: | (./questions.bin | ./answers.bin) > /dev/fd/0
쉘에는 시스템 호출을 통한 yash
기본 인터페이스가 있습니다.pipe()
파이프 리디렉션특징:
(./questions.bin | ./answers.bin) >>|0
이는 명명된 파이프를 생성할 필요(및 독점 생성 보장, 이에 대한 액세스 제한, 이후 또는 신호 정리와 관련된 문제)를 방지합니다.