想要创建一个未命名的管道。在ubuntu 14上,我试过“管道”,没有用,也找不到网络搜索。对于命名管道,“mkfifo”可以工作。
答案 0 :(得分:1)
当您使用|
运算符时,shell会创建一个匿名管道(例如“管道”,因为管道是匿名的):
grep example . -r | less
您无法使用一个命令创建管道,然后在以后使用另一个命令,而不是没有一些古怪的/proc
技巧。如果您以后需要使用某些东西,则必须有一些名称来引用它,此时它不再是管道。请确保以正确的顺序连接每一端(在写入之前阅读)。
在引擎盖下,使用pipe()
函数将管道创建为一对打开的文件句柄。调用pipe()
后,shell会创建两个子进程,每个子进程在调用exec()
之前选择管道的相应末尾。通常,不可能用自己的程序替换shell内置函数。其他示例包括cd
和export
。
您可以使用pipe()
在程序中自行创建管道。