exec函数组六个函数的用法和区别

exec函数组有六个函数,分别是:

#include <unistd.h>

extern char **environ;

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 *path, char *const argv[], char *const envp[]);

这六个函数的可以这样区分:

1、带 l 的表示参数要以list的方式给出,就是每个参数都用逗号分割,多个参数就给多个字符串

2、带 v 的表示参数用vector的方式给出,即一个字符串数组指针

3、带 p 的表示被调用的外部命令可以写成相对路径的方式,函数会到PATH环境变量中去搜索

4、带 e 的表示可以自定义环境变量

OK,现在应该已经清楚了,要注意的是,如果我们要求被调用的命令继承调用者的环境变量上下文,那么,可以用execv, execvp这样的函数;如果用了execve这样的函数,那么,千万注意第三个参数,即环境变量列表不能为NULL,如果为NULL,那么被调用的命令 就无法得到调用者的环境变量列表,如果要用execve这样的函数,要先保存当前的环境变量,然后再加入自定义的环境变量,最后放在第三个参数上。

转载于:https://www.cnblogs.com/super119/archive/2011/04/05/2005603.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值