我的问题是关于linux中的pipe()函数:http://linux.die.net/man/2/pipe
我的问题是:“Linux中只有一个管道?”。我的意思是,如果我有多个写入管道的进程,它是否是相同的管道,这意味着一旦我从管道读取数据,我可能会在同一个read()操作中从不同进程获取数据?
答案 0 :(得分:5)
没有。 pipe()
函数创建一个具有两端的新管道。
可能发生的是文件描述符可以重复。 dup
,dup2
函数可以执行此操作。 fork
也做到了。
如果你有两个带有重复管道文件描述符的程序,那么是的,它们都会显示在管道的输出中。
与终端窗口相同,显示在前台和后台运行的程序的输出。
答案 1 :(得分:1)
不仅读取pipe(2),还读取pipe(7),最重要的是Advanced Linux Programming
我的意思是,如果我有多个写入管道的进程
一般来说,你不应该这样做......
是否是同一个管道,这意味着一旦我从管道读取数据,我可能会在同一个read()操作中从不同进程获取数据?
是的,但你通常不会这样做。