C 中的多管道
我有一个作业正在写 自己的外壳。所以,我尝试连接三个 c中的管道,但我不能。像这样
/bin/cat a.txt | /usr/bin/wc -l | /usr/bin/wc -l
谢谢
I have a homework which is writing
own shell. so, I try to connect three
pipes in c, but I cant. like this
/bin/cat a.txt | /usr/bin/wc -l | /usr/bin/wc -l
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请记住,每个命令都在其自己的进程中执行,每个进程都从 shell 继承 STDIN、STDOUT 和 STDERR I/O 流。因此,在分叉每个子进程之前,您必须创建管道并将它们重定向到 I/O 流或每个子进程。
Remember that each command executes in its own process, each of which inherits the STDIN, STDOUT, and STDERR I/O streams from your shell. So you must create the pipes and redirect them to the I/O streams or each subprocess prior to forking each subprocess.
http://www.scsh.net/ docu/scsh-paper/scsh-paper-ZH-4.html#%_sec_2 提供了这个过程的精彩概述。
http://www.scsh.net/docu/scsh-paper/scsh-paper-Z-H-4.html#%_sec_2 Provides an excellent overview of this very process.