exec函数族

启动进程:exec族

共用头文件:#include

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.execl
函数定义:
int execl(const char *path,const char *arg, ...);
返回值

函数执行成功时没有返回值,执行失败时的返回值为-1.

函数说明 execl()用来执行参数path字符串所代表的文件路径,第二个参数是利用数组指针来传递给执行文件,最后一个参数需要以空指针(NULL)结束。
2.execlp
函数定义
int execlp(const char *file, const char *arg, ...);
返回值

函数执行成功时没有返回值,执行失败时的返回值为-1.

函数说明 execl()用来执行参数path字符串所代表的目录中找到符合参数file的文件名,找到后便执行该文件,第二个参数是利用数组指针来传递给执行文件,最后一个参数需要以空指针(NULL)结束。
3.execle
函数定义
int execle(const char *path,const char *arg, ..., char * const envp[]);
返回值

函数执行成功时没有返回值,执行失败时的返回值为-1.

函数说明 execl是用来执行参数path字符串所代表的文件路径,并为新程序复制最后一个参数所指示的环境变量。接下来的参数代表执行该文件时传递过去的argv(0)、argv[1]……,最后一个参数必须用空指针(NULL)作结束。
4.execv
函数定义
int execv(const char *path,char *const argv[]);
返回值

函数执行成功时没有返回值,执行失败时的返回值为-1.

函数说明 execv()用来执行参数filename字符串所代表的文件路径,第二个参数是利用数组指针来传递给执行文件,最后一个参数则为传递给执行文件的新环境变量数组。
5.execvp
函数定义
int execvp(const char *file, char *const argv[]);
返回值

函数执行成功时没有返回值,执行失败时的返回值为-1.

函数说明 execvp()用来执行参数path字符串所代表的目录中找到符合参数file的文件名,找到后便执行该文件,第二个参数是利用数组指针来传递给执行文件。
6.execve
函数定义
int execve(const char *filename, char *const argv[ ], char *const envp[ ]);
返回值

函数执行成功时没有返回值,执行失败时的返回值为-1.

函数说明 execve()用来执行参数filename字符串所代表的文件路径,第二个参数是利用数组指针来传递给执行文件,并且需要以空指针(NULL)结束,最后一个参数则为传递给执行文件的新环境变量数组。

综合而言:

exec函数族装入并运行程序pathname,并将参数arg0(arg1,arg2,argv[],envp[])传递给子程序,出错返回-1。在exec函数族中,后缀l、v、p、e添加到exec后,所指定的函数将具有某种操作能力有后缀:
后缀 操作能力

l 希望接收以逗号分隔的参数列表,列表以NULL指针作为结束标志,参数传递为逐个列举方式:execl execle execlp
v 希望接收到一个以NULL结尾的字符串数组的指针,参数传递为构造指针数组方式:execv execve execvp
p 是一个以NULL结尾的字符串数组指针,函数可以DOS的PATH变量查找子程序文件,可执行文件查找方式为文件名:execlp execvp
e 函数传递指定参数envp,允许改变子进程的环境,无后缀e时,子进程使用当前程序的环境,可传递新进程环境变量: execle execve

摘自http://www.cnblogs.com/blankqdb/archive/2012/08/23/2652386.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值