Linux——在进程中运行可执行文件_未完成

创建进程以后的两种用法:
1. 父进程希望子进程能够与自己共享代码,并且拷贝自己的数据段,从而让父子进程继承相同的打开的文件以及一些创建时刻的某些状态信息.然后让父子进程执行不同的代码段.
2. 父进程在创建子进程之后,希望子进程在其进程空间当中加载另外一个可执行文件,从而达到一个创建一个全新进程的目的.

第二点其实是大多数情况
1. 进程调用exec系列函数在进程中加载执行另外一个可执行文件
2. exec系列函数替换了当前进程(执行该函数的进程)的正文段、数据段、堆和栈(来源于加载的可执行文件)
3. 执行exec系列函数后从加载可执行文件的main函数开始宠幸执行
4. exec系列函数并补创建新进程,所以在调用exec系列函数后其进程ID并未改变,已经打开的文件描述符不变.
在这里插入图片描述

exec函数有6个函数,因为这六个函数的开头均为exec,所以称为exec系列函数.6个函数分别位:execl, execle, execlp, execv, execve, execvp
1. l:表示list, 每个命令行参数都说明为一个单独的参数
2. v:表示vector, 命令行参数放在数组中
3. e:表示由函数调用者提供环境变量表
4. p:表示通过环境变量PATH来指定路径,查找可执行文件

发布了179 篇原创文章 · 获赞 1 · 访问量 7553

猜你喜欢

转载自blog.csdn.net/weixin_42596275/article/details/105668734
今日推荐