c-如何使用execl来管理多个进程



我对操作系统domnain还是个新手。目前,我正在尝试用C语言实现一个shell,其中一个主要功能是管道功能。我的问题是:在执行fork-dup和其他所需的进程之后,如果我有多个参数,我应该如何在execl中写入。例如,有一次我会有一个管道,有三个过程,比如某事物其他两个过程

假设您有类似ls | wc的简单管道。它可能是这样可视化的:

+----++----+------>|ls|------------------------------>|wc|------->(stdin(+----+(管道写入端((管道读取端(+-----+(stdout(

每个程序都需要一个单独的子进程,由主shell进程中的fork创建。然后,每个子进程都会像通常那样调用exec

一般来说,对于包含n程序的管道,需要n进程和n - 1管道。它可以被推广并放入一个循环中。

最新更新