当前位置: 首页 > article >正文

进程替换函数组介绍exec*

目录

前述

execl

execlp

execle

execv

execvp

 execvpe


前述

介绍后缀的意义:

l (list):表示参数采用列表。

v(vector):参数同数组表示。

p(path):自动搜索环境变量(路径+程序名=>程序名)。

e(env):手动维护环境变量。

execl

int execl(const char *path, const char *arg, ...);

path:路径+程序名字的字符串

arg:类似控制台输入 这里arg可以有多个必须以NULL结尾

调用ls指令
execl("/usr/bin/ls", "ls","-a","-l",NULL);

execlp

int execlp(const char *file, const char *arg, ...);

file:自动在环境变量寻找路径,只需要传入程序名

arg:类似控制台输入 这里arg可以有多个必须以NULL结尾

调用ls指令
execlp("ls"/*file*/,"ls","-a","-l",NULL);

execle

int execle(const char *path, const char *arg,..., char * const envp[]);

path:路径+程序名字的字符串

arg:  类似控制台输入 这里arg可以有多个必须以NULL结尾

env:  手动维护环境变量。

调用ls指令
char*env[]={"PATH=/usr/bin/ls",NULL};
execlp("/usr/bin/ls", "ls","-a","-l",NULL,env);

execv

int execv(const char *path, char *const argv[]);

path:路径+程序名字的字符串

argv:使用数组argv代替输入多个arg参数

调用ls指令
char*argv[]={"ls","-a","-l",NULL};
execv("/usr/bin/ls",argv);

execvp

int execvp(const char *file, char *const argv[]);

file:自动在环境变量寻找路径,只需要传入程序名

argv:使用数组argv代替输入多个arg参数

调用ls指令
char*argv[]={"ls","-a","-l",NULL};
execvp("ls",argv);

 execvpe

int execvp(const char *file, char *const argv[]);

file:自动在环境变量寻找路径,只需要传入程序名

argv:使用数组argv代替输入多个arg参数

env:  手动维护环境变量。

调用ls指令
char*env[]={"PATH=/usr/bin/ls",NULL};
execvpe("ls", "ls","-a","-l",NULL,env);

execve(系统函数)==execvpe

 int execve(const char *filename, char *const argv[],char *const envp[]);

file:自动在环境变量寻找路径,只需要传入程序名

argv:使用数组argv代替输入多个arg参数

env:  手动维护环境变量。

这个接口是系统接口函数,我们一般都是用其他接口函数,其实这些进程替换函数是基于execve为底层的上层封装函数。


各关系关系图谱

 其实,其他进程替换函数都是基于execve(系统函数)的上层封装函数。


http://www.kler.cn/a/18056.html

相关文章:

  • 企业如何提高团队管理的能力?
  • 游戏引擎学习第七天
  • nvm 安装指定node版本时--list 显示为空
  • YOLOV8应用|排球垫球计数|附带全部数据集与源码(见文末百度云盘链接)
  • 索引【MySQL】
  • 介绍几个提取视频文案的Coze插件
  • 嵌入式设备逆向所需的工具链
  • SPSS如何绘制常用统计图之案例实训?
  • 华为MPLS跨域——后门链路实验配置
  • 直线飙升到10万+star的AutoGpt,有多强?帮我写了个网页!
  • 文鼎创智能物联云原生容器化平台实践
  • 为什么网络安全缺口很大,招聘却很少?
  • 乐鑫esp32-c2开发板 烧录演示
  • PMP-项目整合管理
  • MySQL ---- 事务
  • golang - 函数的使用
  • 什么是网络——TCP/IP协议
  • explain都不懂?搞什么数据库优化,快进来学习了
  • PAT A1032 Sharing
  • 《基于光学传感器的心房颤动检测:综述》阅读笔记
  • Docker笔记整理
  • 算法 DAY55 动态规划11 392.判断子序列 115.不同的子序列
  • MySQL基础(十一)数据处理之增删改
  • 拨云见日:深入理解 HTML 解析器与有限状态机
  • STC89C51系列单片机与ADC0832通信
  • PingCode 的环境和环境管理