exec函数族解析

1.首先解释一下,exec函数的作用:它是为了在一个程序中运行另一个程序。

例如:在一个程序中,执行fork(),可以产生两个进程,我们可以通过exec函数族来实现对父子进程的执行程序进行改变。

2.exec函数族

#include <unistd.h>
extern char **environ;
int execl(const char *path,const char *arg, ...);    //带有可变参数的需在参数列表之后添加NULL。
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[]);

3.exec函数族中后缀l、p、e、v分别表示的含义

后缀 含义
l(list) 命令行参数
p(path) 搜索file时用path变量
v(vector) 使用命令参数数组
e(environment) 使用环境变量数组,不使用进程原有的环境变量,设置新加载程序运行的环境变量

 

 

 

 

eg:  execlp("ls”, ”ls”, ”-l”, ”-a”, NULL);

execl("/bin/ls”, ”ls”, ”-l”, ”-a”, NULL); 

区别:需要添加路径。

4.函数返回值

函数执行成功,不进行返回值;执行错误,返回-1.

猜你喜欢

转载自www.cnblogs.com/single-dont/p/12607730.html