Vla*_*ala 33 unix fifo
我有两个程序,Writer和Reader.
我有一个从Writer到Reader的FIFO,所以当我在Writer中写入stdin的东西时,它会从Reader打印到stdout.
我尝试打开两个读者,并且只从两个Reader程序中的一个输出到stdout.每次运行时,Unix选择打印标准输出的读者程序似乎是任意的,但是一旦选择了其中一个程序,每个输出到标准输出都会从同一个Reader程序打印出来.
有谁知道为什么会这样?
如果我有两个WRITER程序,它们都可以写入同一个管道.
asv*_*kau 26
FIF O中的O表示"出局".一旦你的数据"出局",它就消失了.:-)因此,如果另一个进程出现并且其他人已经发出了读取,那么数据就不会有两次.
要完成你的建议你应该看看Unix域套接字.Manpage 在这里.您可以编写一个可以写入客户端进程的服务器,并绑定到文件系统路径.又见socket(),bind(),listen(),accept(),connect(),所有这一切,你会想使用PF_UNIX,AF_UNIX和struct sockaddr_un.
socket()
bind()
listen()
accept()
connect()
PF_UNIX
AF_UNIX
struct sockaddr_un
Jul*_*ian 11
Linux tee()可能适合您的需求. 看到这里发球
注意:此功能是特定于Linux的.
归档时间:
16 年,1 月 前
查看次数:
26194 次
最近记录:
6 年,6 月 前