2012-11-23 3 views
-1

하나의 프로그램에서 다른 프로그램으로 입력을 연속적으로 파이프하는 방법을 찾고 있습니다. i에 iNotify 또는 파일 폴링을 사용하거나 임시 파일을 사용하는 것이 더 좋습니다.연속 파이프 입력

편집

은 쉘 파이프를 참조 있다는 표시하지 않는 미안하지 파이프 (2).

+0

파이프 (2)에 대해 이야기하고 있습니까? –

+0

'./prog2

+0

@KerrekSB thats ** NOT ** Pipe, thats 쉘 리디렉션 –

답변

4

파이프는 이미 연속적으로 작동합니다. prog1 | prog2을 실행하면 prog1이 더 많은 출력을 stdout에 쓸 때마다 prog2이 이것을 stdin에서 읽고 읽을 수 있습니다. prog2prog1이 파이프의 측면을 닫거나 종료 할 때까지 파이프에서 파일 끝을 보지 못합니다.

+1

이것은 일반적으로 건전하고 표준적인 관행이지만,'prog1'이 끝내고 파이프를 닫지 않을 가능성이 있습니다. 예를 들어,'prog1'이'sh -c 'yes &''이면, 종료 될 것이지만 파이프가 열린 상태를 유지하는'yes'를 실행하는 자식 프로세스를 생성 할 것입니다. 더 많은 병리학 적 사례를 쉽게 볼 수 있습니다. –

+0

@WilliamPursell 이것은 사실이지만, 포인트 옆에 조금 있습니다. 나는 prog1이 열어 놓은 채로 파이프가 열려있을 것임을 보여주고 싶었다. 일반적으로 파이프의 동작을 설명하는 데 더 많은 세부 사항과 모서리 케이스가 있지만 명백한 질문에 설명 된 기본 유스 케이스에는 간단한 파이프 만 있으면 충분합니다. –

+0

@WilliamPursell 알림을 주셔서 감사합니다. 'prog1'이 종료 된 경우 파이프 상태를 고려하지 않았을 것입니다. 해당 파이프의 상태를 확인하는 데 사용할 수있는 표준 또는 코딩 방법이 있습니까? fork되지 않기 때문에 두 프로그램의 상태를 검사 할 방법을 생각할 수 없습니다. – Blackninja543

관련 문제