+-
linux – 使用cat在管道之间弹回一个字符
我一直在读 Linux中的管道,我在一本书中看到了这个( http://linux-training.be/linuxsys.pdf,第16页)

首先,他们用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 <pipe33b >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,再次开始整个过程​​.

点击查看更多相关文章

转载注明原文:linux – 使用cat在管道之间弹回一个字符 - 乐贴网