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

exec函数组六个函数的用法和区别相关推荐

  1. Linux0.11 execve函数(六)

    系列文章目录 Linux 0.11启动过程分析(一) Linux 0.11 fork 函数(二) Linux0.11 缺页处理(三) Linux0.11 根文件系统挂载(四) Linux0.11 文件 ...

  2. Python 精要参考(第二版) 第六章 函数与函数编程

    1. 第六章 函数与函数编程 为便于代码维护,绝大多数子程序都被分解并重新组织为函数以使代码模块化. 在 Python中定义一个函数很简单,Python从其它函数编程语言中借鉴了很多有用的思路用来简化 ...

  3. oracle开窗函数是什么,ORACLE数据库(六)-----开窗函数

    ORACLE数据库(六)-----开窗函数 开窗函数又名分析函数.窗口函数.OLAP(数据分析)函数 聚合函数:将数据按照一定的规则分组,统一分析各组的某项情况,每个分组返回一行结果 开窗函数:将数据 ...

  4. jmeter 计数器_jmeter函数(六)

    JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示: ${__functionName(var ...

  5. 《C++ Primer》读书笔记—第六章 函数

    声明: 文中内容收集整理自<C++ Primer 中文版 (第5版)>,版权归原书所有. 学习一门程序设计语言最好的方法就是练习编程 一.函数基础 1.一个典型的函数定义包括以下内容:返回 ...

  6. pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)

    pandas使用groupby.first函数.groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异) 目录

  7. 我的MYSQL学习心得(六) 函数

    2019独角兽企业重金招聘Python工程师标准>>> 这一节主要介绍MYSQL里的函数,MYSQL里的函数很多,我这里主要介绍MYSQL里有而SQLSERVER没有的函数 数学函数 ...

  8. SAP 开发陷阱一箩筐(01)——创建了函数组却无法激活

    SAP 的 ABAP 工作台功能强大,而且互相之间的交叉关联导航做得非常好,使用熟练了相当方便.但是,有些地方的设计却因为平台限制而有点别扭,尤其容易给初学者造成困扰,本专辑就收集我在学习过程中遇到的 ...

  9. C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中

    1. 题目 请编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中.二 ...

最新文章

  1. 华为云客户端_华为云新一代S6云服务器缘何深受中小企业青睐?
  2. GBDT算法原理及附有源码实现的 转
  3. IE提示“存储空间不足,无法完成此操作”的错误
  4. 【译】canvas笔触魔法师
  5. 使用ftp上传文件到Unix系统注意事项
  6. 深度学习之 RPN(RegionProposal Network)- 区域候选网络
  7. 关于 C++ 中输入输出的猜想
  8. 罗马音平假名片假名转换器_零基础日语萌新该如何学习五十音?
  9. 每 2.35 个月开发一款新游戏,这个公司是如何做到的?
  10. OpenCV精进之路(十九):工具——程序打包发布
  11. suse 查看java版本_如何查看当前Linux的版本
  12. UE虚幻引擎云渲染支持8K方案
  13. 黑灰对比可以为高大上网站风格代言
  14. ikbc c104win键盘失灵以及数字键失灵
  15. Aptos VS Sui,盘点两大 Move 系新公链的创新异同
  16. dblink(dblink是什么意思)
  17. windows2003服务精简方案
  18. RISC和CISC,究竟有何不同?
  19. php定义常量的关键字,PHP常量
  20. 伺服控制硬件电流环FPGA方案

热门文章

  1. WebSphere Application Server中manageprofiles的使用
  2. [七月挑选]使用idea创建spring boot 项目
  3. 测试Varnish缓存服务器与IIS连接数
  4. php alert 乱码
  5. 手把手教你使用Gene6FTP远程管理
  6. 盖茨:即使收购雅虎失败也要对决谷歌
  7. Android必知必会-Android Studio下配置和使用Lambda
  8. android 启动速度优化终极方案
  9. 【剑指offer-Java版】21包含min函数的栈
  10. wireshark网络分析就这么简单_【读书笔记】2wireshark网络分析就这么简单——不同子网如何发送消息。...