所以我必须制作一个包含 3 个命令的管道:
- 一个程序写成C在无限循环中打印文本 - 编译后称为
a.out
- 它可以是任何东西,例如
xcalc
- 如上所述,例如
xclock
所以我的问题是如何用这三件事制作一个管道,然后使用命令lsof
获取有关打开的管道的任何信息?
我尝试过这样的事情:
mknod pipe1 p ./a.out | xclock | xcalc
但它不能正常工作。
我必须使用哪个参数lsof
才能获得我想要的信息? (在索拉里斯这是pfiles -F
)。
答案1
就像管道一样,物理管道必须有两个开口端(例如水流过的一侧)在,以及水流过的一侧出去), 在*尼克斯管道需要从 接收输入的程序/dev/stdin
(即标准输入),并将输出发送到/dev/stdout
,(即标准输出),或者(更常见的是)两者都做。旨在执行这些操作的程序的行为类似于插头或者管道中的塞子,阻止(数据)流动。
OP 中使用的所有三个程序(mknod
、xclock
和xcalc
),请勿使用标准输入或者标准输出足够重要,因此是*尼克斯相当于插头。将它们用管道连接在一起并不比用两段 PVC 管连接三个爱达荷州土豆更有用。