当前位置: 首页> 教育> 幼教 > 进程的替换

进程的替换

时间:2025/8/23 4:05:29来源:https://blog.csdn.net/2302_81250321/article/details/141415003 浏览次数:0次

1.进程替换是什么

用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变

2.替换函数exec

exec系列函数有6个

 

execl 

l可以理解为list,表示参数使用列表

 

    #include<stdio.h>2 #include<unistd.h>3 #include<sys/types.h>4 #include<stdlib.h>5 int main()6 {7     pid_t id=fork();8     if(id==0)9     {10         //child11         execl("/usr/bin/ls","ls","-a","-l",NULL);12         exit(1);13     }14     else{15         int ret=5;16         while(ret)17         {18             printf("i am father pid: %d,ppid: %d,ret: %d\n",getpid(),getppid(),ret);19             sleep(1);20             ret--;21         }22         exit(0);23     }24     return 0;25 }     

 

execlp

p代表path,就是已经知道环境变量了,会自动搜索路径

execv 和execvp

v表示vector,就是用数组来传递

 

ececle 

e可以理解为环境的意思,就是说这个函数可以传递环境变量 

进程替换不仅可以替换为系统程序,还可以替换自己写的程序,也就是说C++的程序经过替换可以替换成其他语音的程序。

 

关键字:进程的替换

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: