我正在为 POSIX (OSX) 编写一个程序,其中我将有许多进程向一个侦听器发送消息,该侦听器本质上是一个日志记录线程。所有进程都在单独的程序中运行,并且使用许多进程写入但只有一个进程读取的单个命名管道 (FIFO) 非常诱人。
问题:
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() 的调用都会完整地发送给读者吗?或者,一条消息的一半是否会与来自不同作者的另一条消息的一半存在混淆?
感谢您的任何建议。