필자는 본질적으로 로깅 스레드 인 하나의 리스너에게 많은 프로세스가 메시지를 보내는 POSIX (OSX) 용 프로그램을 작성하고 있습니다. 모든 프로세스는 별도의 프로그램에서 실행되며 단일 프로세스가 작성하는 단일 명명 된 파이프 (FIFO)를 사용하지만 단일 프로세스 만 읽는 것은 매우 유혹적입니다.많은 프로세스가 posix의 명명 된 파이프에있는 단일 판독기에 쓰는 것에 대한 반향이 있습니까?
질문 :
1)이 기능을 사용할 수 있습니까? - 필자는이 작업을 bash를 사용하여 여러 개의 프로세스가 작성된 FIFO를 설정하도록 만들 수 있습니다. 따라서 이론 상으로는 이것이 작동한다는 것을 알고 있습니다. 그러나 실제로, 내가 광택을 쓰고있는 문제가 있습니까?
쉘 # 1
$ mkfifo /tmp/fifo
$ cat /tmp/fifo
쉘 # 2 각 작가는 상대적으로 짧은 메시지를 작성하는 경우 # 3
$ cat > /tmp/fifo
"Type stuff here, after hitting enter, it is read by shell #1"
2) (< 100 바이트?) 나는 각각의 호출이 있다고 가정 할 수 있습니다 write()는 독자에게 보내질 것입니다. 또는 한 메시지의 절반이 다른 작가의 다른 메시지의 절반으로 왜곡 될 위험이 있습니까?
어떤 조언을 주셔서 감사합니다.
당신은 환영합니다 :) – sfossen