1

我想制作一个使用系统调用来创建进程的 C 程序。程序应该从命令行接收未确定数量的 Linux 命令,以根据用户输入的选项并行或按顺序执行它们。

执行命令 [-p|-s] 命令 1 命令 2

其中 p - 并行(对于每个命令,父进程必须创建一个执行相应命令的子进程。)

和 s - 序列(父进程应该为每个执行的命令创建子进程,但是运行第二个命令的进程将必须等待运行命令的进程完成第一个和第三个命令将不得不等待结束实施第二个等)

所以基本上我希望那个用户做类似的事情

./executeCommand -p ls\ -lisa cat\ fork.c

#include<stdio.h>
int main(int argc, char *argv[]){

execl("/bin/ls","ls",NULL);

}

一些提示将不胜感激!

4

2 回答 2

2

如上所述,fork、wait 和 exec 系列应该足以让您实现 mini-shell。

对于高级命令行参数解析,你可以看看 getopt

这是教程上的链接: 解析程序参数

于 2011-05-03T14:46:08.717 回答
0

你需要fork. 你需要不同种类的execwait调用。

这些系统调用应该是您所需要的。

于 2011-05-03T14:34:59.120 回答