首先,他们用mkfifo创建了四个管道
$mkfifo pipe33a pipe33b pipe42a pipe42b
copy / bin / cat into ./
$cp /bin/cat proj33 && cp /bin/cat proj42
然后运行以下命令
$echo -n x | ./proj33 - pipe33a > pipe33b
$./proj33 pipe33a &
这本书解释了最后一个命令
The commands you see above will create two proj33 processes that use
cat to bounce the x character between pipe33a and pipe33b.
我的问题是我不明白最后一个命令.特别是在./proj33和pipe33a之间使用’ – ‘的原因.什么’ – ‘做.这个设置如何像一个交换charatier’x’的无限循环?
解决方法:
说明:
为清楚起见,我将调用进程cat1和cat2而不是proj33.
> echo -n x输出字符’x’并将其提供给cat1,这只是cat命令的副本.
> cat1 – pipe33a> pipe33b:首先读取stdin(这就是 – 的意思)并将其写入pipe33b.然后cat1尝试从pipe33a读取它必须等待.
> cat2< pipe33b> pipe33a&从pipe33b读取’x’并将其写回pipe33a
> cat1现在可以从pipe33a中读出’x’并将其写回pipe33b,再次开始整个过程.
标签:bash,linux,shell,unix,pipe
来源: https://codeday.me/bug/20190824/1704108.html