[英]How can I launch multiple programs in a pipe?
大家好我正在嘗試執行以下操作:創建兩個模仿此命令的孩子
cat <infile | wc -c> outfile
使用
./a.out infile "cat" "wc -c" outfile
為此,我在開頭做一個 pipe 以便在第一個孩子中我 dup2 (fd [1], 1); 然后我跑
| execve (argv [2], ARGS, envp) |
在 ARGS 我們有 {"/bin/cat", "infile", "NULL"};
所以在第二個孩子中,我在 fd [0] 中有前一個程序的 output,但是我不知道如何使用它來將它作為輸入傳遞回 wc-c。
infile
進行閱讀。outfile
進行寫入。dup2
) infile
的描述符到 fd 0。dup2
)到 fd 1。infile
的描述符。outfile
的描述符。cat
。dup2
)到 fd 0。dup2
) outfile
的描述符到 fd 1。infile
的描述符。outfile
的描述符。wc -c
。infile
的描述符。outfile
的描述符。錯誤檢查留給您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.