두 프로세스간에 파이프를 만드는 프로그램이 있습니다. 하나의 프로세스는 다른 프로세스의 출력을 지속적으로 모니터하고 특정 출력이 발생할 때 write()
기능을 가진 다른 파이프를 통해 입력을 제공합니다. 내가 가지고있는 문제는, 비록 파이프가 close()
파이프가 될 때까지 다른 프로세스의 표준 스트림으로 이동하지 않는다는 것입니다. 나는이 프로그램이 찾고있는 결과물을 만날 때마다 무한 루프시키고 반응하도록한다. 파이프를 닫지 않고 입력을 다른 프로세스로 보내는 방법이 있습니까?C/C++에서 동일한 파이프에 여러 번 쓰고 싶습니다.
약간 검색 한 결과 이름있는 파이프를 닫은 후 다시 열 수 있다는 것을 알았지 만 이름없는 파이프를 사용하기 위해 이미 코드를 작성 했으므로 다른 옵션이 있는지 알고 싶었습니다. 아직 배웠습니다. 명명 된 파이프를 사용합니다.
첫 번째 프로세스가 파이프에 쓰는 방법은 무엇입니까? 'fprintf()'등을 사용하고 있다면 출력이 버퍼링 될 것입니다. 'fflush()'를 호출하면 데이터가 전달됩니다. –
'write (pipe [1], string, strlen (string));'와 같은 줄로 파이프에 쓰고 있습니다. 'fflush()'는 유망 해 보입니다. – Alex