Implementing pipe in C

前端 未结 2 1843
情书的邮戳
情书的邮戳 2020-12-03 11:57

I am trying to implement pipe in C. eg - $ ls | wc | wc

I have written the following code -

#include
#include

        
2条回答
  •  旧时难觅i
    2020-12-03 12:18

    If your are still interested in why your source didn't work (Sergey's solution is better anyway):

    The problem is not closing the write side of fd_1 in the parent process. Thus both argv[1] and parent have been writers to that pipe and that caused the confusion. Please don't ask for more details (esp. why the prob doesn't occur if you use only one pipe) but your original source will run with tree processes if you just add a close( fd_1[1] ); after the first call of run_cmd()

提交回复
热议问题