Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
利用系统调用创建进程的C程序_C_Linux_Unix_Os.execl - Fatal编程技术网

利用系统调用创建进程的C程序

利用系统调用创建进程的C程序,c,linux,unix,os.execl,C,Linux,Unix,Os.execl,我想做一个C程序,利用系统调用创建 过程。程序应该从命令行接收一个未确定的数字 根据用户输入的选项以并行或顺序执行它们的Linux命令 执行命令[-p |-s]COMAND 1 COMAND 2 其中p-parallel(对于每个命令,父进程必须创建执行相应命令的子进程。) 和s-序列(父进程应为执行的每个命令创建子进程,但运行第二个命令的进程必须等待运行该命令的进程完成第一个命令,而第三个命令必须等待第二个命令的实现结束,以此类推) 所以基本上我想让用户做一些 ./executeCommand

我想做一个C程序,利用系统调用创建 过程。程序应该从命令行接收一个未确定的数字 根据用户输入的选项以并行或顺序执行它们的Linux命令

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

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

和s-序列(父进程应为执行的每个命令创建子进程,但运行第二个命令的进程必须等待运行该命令的进程完成第一个命令,而第三个命令必须等待第二个命令的实现结束,以此类推)

所以基本上我想让用户做一些

./executeCommand-pls \-lisa cat\fork.c

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

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

}
#包括
int main(int argc,char*argv[]){
execl(“/bin/ls”,“ls”,NULL);
}

一些提示将不胜感激

你需要
叉子
。您需要不同类型的
exec
wait
调用


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

如上文所述,fork、wait和exec系列应该足以让您实现迷你shell

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

以下是教程的链接:

让壳牌公司来处理这一切不是更容易吗?这听起来很像家庭作业。。。您是否尝试过man execl