进程替换
- 目录:
- 概念
- exec函数族
- int execl(const char *path,const char *arg,...);
- int execlp(const char *file,const char *arg,...);
- int execle(const char *path,const char *arg,...,char *const envp[ ]);
- int execv(const char *path,char *const argv [ ]);
- int execvp(const char *file,char *const argv[ ]);
- int execve(const char *file,char *const argv[ ],char *const envp[ ]);
目录:
概念
替换: 替换一个进程正在调度运行的程序(在一个进程中执行替换接口,就实现改变当前调用的程序)
程序替换只是替换了运行中的程序,而pcb中也只是重新初始化一些信息(虚拟地址空间,页表)
exec函数族
用于进行程序的替换
1.第一个参数是新的程序文件路径名
2.第二个参数是程序的运行参数
3.第三个参数是环境变量
int execl(const char *path,const char *arg,…);
int execlp(const char *file,const char *arg,…);
int execle(const char *path,const char *arg,…,char *const envp[ ]);
int execv(const char *path,char *const argv [ ]);
int execvp(const char *file,char *const argv[ ]);
int execve(const char *file,char *const argv[ ],char *const envp[ ]);
1.有p,不需要带路径,默认在PATH下寻找,带P常用命令程序进行替换
2.有e,有我们自己配置环境变量,否则使用原来最后的系统调用接口
多在shell中实现就可以了,很简单的.