在C linux中创建子进程

时间:2018-05-17 07:08:22

标签: c linux fork child-process execl

使用fork()函数创建子进程。

父进程通过运行execl()命令的cat f1.c函数运行进程的更改内容。

子进程运行traceroute www.google.com命令。

1 个答案:

答案 0 :(得分:-2)

在此处提问之前,请自行尝试并发布您目前所尝试的内容,以便我们指导您正确的方向。而且,如果你付出更多努力来提出更好的问题,那就太好了。但是要给你一些指导:

您可以使用fork创建子进程。它返回一个整数。如果它为零,则表示您处于子进程中。所以你可以这样做:

    int pid;
        if((pid=fork())==0){
          // you are in child process
          //use execl(constant char *path, constant char *commands); to run your commands
    }
    else {
          //whatever you need to do in the parent process
}

你可以在这里找到关于execl()的信息:https://www.systutorials.com/docs/linux/man/3-execl/它基本上是一种运行命令的方法。第一个参数是一个常量char指针,它指向要在(" / bin / sh"等)中运行命令的shell。接下来的参数是它自己的命令(" cd"," mydir"等等)以null结尾。

execl("/bin/sh","cd","mydir",NULL);