【发布时间】:2013-03-04 05:47:22
【问题描述】:
例如,我们在 shell 中执行了以下操作:
ls | grep "abc" | wc
我了解子进程如何从 shell 派生以及它的子进程如何,像这样,
Shell (pid=12)
\
\
ls (pid=13)
但我不确定管道和尾随命令如何适应。它们也是 shell 的子级,而不是 ls?
【问题讨论】:
-
您熟悉
pstree实用程序吗? -
对于 OP:从 this code 了解 shell 如何实际实现
|运算符。在代码中搜索这一行:if (!(newJob.progs[i].pid = fork()))然后你就知道 ls, grep, wc 是 shell 的子进程...代码不是 bash 代码,但 Bash 做类似..
标签: c fork conceptual