Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        2年前关闭。
                                                                                            
                
        
通过使用fork()函数创建子进程。

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

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

最佳答案

在这里提出问题之前,请先尝试一下,然后发布您到目前为止已经尝试过的内容,以便我们指导您正确的方向。另外,如果您在提出更好的问题上付出更多的努力,那将是很好的。但是给你一些指导:

您可以使用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”等)。下一个参数是其自身以null终止的命令(“ cd”,“ mydir”等)。

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

关于c - 在C linux中创建子进程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50385398/

10-16 21:15