-7

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

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

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

4

1 回答 1

-1

在此处提问之前,请自行尝试并发布您迄今为止尝试过的内容,以便我们引导您朝着正确的方向前进。此外,如果您能更加努力地提出更好的问题,那就太好了。但是给你一些指导:

您可以使用 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 指针,它指向要在其中运行命令的 shell(“/bin/sh”等)。下一个参数是它自己的命令(“cd”、“mydir”等)以 null 终止。

execl("/bin/sh","cd","mydir",NULL); 
于 2018-05-17T07:25:28.717 回答