我有一个不断需要写信息的过程。此外,还有第二个过程有时会连接到写入过程的“信息通道”,并且应该读取自连接后写入的信息。此过程可能还会多次断开连接并重新连接。
我目前正在使用命名管道实现这一点,在我的c ++程序中使用mkfifo()。不幸的是,如果我在这个fifo上调用open(),它会一直阻塞,直到一个进程打开fifo进行读取。对于命名管道,这是很正常的,但我需要这个打开命令是非阻塞的。
在这种情况下你知道替代mkfifo吗?
海因里希
答案 0 :(得分:1)
您可以在回送接口上使用Unix域套接字或常规TCP套接字。
答案 1 :(得分:0)
您可以使用共享内存或mmap。它应包含最旧数据的偏移量和数据的内存块
fifo限制为64k(取决于发行版和一些设置)。
答案 2 :(得分:0)
我终于使用了unix消息队列,Reader和Writer可以完全独立启动,一切都可以非阻塞地执行