微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,再次开始整个过程​​.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐