news 2026/8/6 13:02:21

Linux系统编程——进程进阶:exec 族、system 与工作路径操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux系统编程——进程进阶:exec 族、system 与工作路径操作

一、exec族函数

  • 核心功能:执行本地任意可执行文件,是进程代码替换的核心工具。
  • 典型搭配:常和 fork() 配合。让子进程执行 exec,避免父进程自身代码被替换。
  • 内存逻辑
    • 执行 exec 后,原进程的代码段会被新程序完全覆盖;
    • 新程序运行结束,整个进程直接终止(原进程中 exec 之后的代码不会执行)。

执行 exec 之前:

执行 exec 之后:

函数区分:

  • l(list):参数以列表形式传
原型:int execl(const char *path, const char *arg, ...); 示例:execl("/bin/ls", "ls", "-a", NULL);

path:需要执行新程序的路径+文件名
arg:是新程序所需要的参数列表,结束标志NULL

  • v(vector):参数存在数组里传
原型:int execv(const char *path, char *const argv[]); 示例:char* arg[] = {"ls", "-l", NULL}; execv("/bin/ls", arg);

path:需要执行新程序的路径+文件名
argv:存放参数的数组 ,最后一个参数是NULL

  • p(PATH):自动从环境变量查程序
原型:int execlp(const char *file, const char *arg, ...); 示例:execlp("ls", "ls", "-l", NULL); // 无需写全路径

file:需要执行新程序的文件名(默认在环境变量PATH中查找)
arg:是新程序所需要的参数列表,结束标志NULL

二、system函数

  • 功能:一键执行 Shell 命令(如 ls/mkdir),适合简单系统操作。
  • 内部实现:底层是 fork()+exec 的封装,省去手动编写进程控制逻辑的步骤。
  • 限制:不能执行修改父进程状态的命令(如 cd,仅对 system 内部子进程生效)。
  • 用法:int ret = system("ls -l");(返回 -1 代表执行失败)。

三、工作路径工具

1.getcwd(获取当前路径)

  • 功能:把当前工作路径存入字符数组;
  • 用法:char buf[1024]; getcwd(buf, sizeof(buf));(失败返回NULL)。

2.chdir(切换工作路径)

  • 功能:修改进程的当前工作目录;
  • 用法:int ret = chdir("/home/user");(成功返回0,失败返回-1)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 16:06:11

找科研 idea 别再靠感觉!用这5个“灵感来源”,结合GPT-5.2 把模糊想法浓缩成可落地的研究问题

多数科研同仁肯定一直觉得,找idea就是找出别人研究中没做过的问题。但实际上好的研究idea,有以下三个核心标准: 有价值:要么解决学术空白,要么回应现实需求; 可实现:有技术、数据、设备或经费能支撑; 有增量:不重复已有研究,在方法、视角、数据中至少有一个创新点。…

作者头像 李华
网站建设 2026/8/6 5:38:54

控制电机:正弦波永磁同步电动机矢量控制系统仿真之旅

控制电机-正弦波永磁同步电动机矢量控制系统仿真 仿真模型实验报告(内附实验参数,仿真波形等) 注意:matlab版本需在2016a以下,否则可能打不开在电机控制领域,正弦波永磁同步电动机矢量控制系统有…

作者头像 李华
网站建设 2026/8/5 18:03:33

三菱FX5U与扫码枪、欧姆龙E5CC温控器通讯实战

三菱FX5U与扫码枪通讯 控制欧姆龙E5CC温控器通讯程序输出启停控制(SL5U-15)功能:通过三菱FX5U本体485口,以太网口,与温控器,扫码枪通讯。 结合触摸屏网口,实现扫码枪扫条码,查询配方设定温度,对…

作者头像 李华
网站建设 2026/8/5 10:15:49

【毕业设计】基于SpringBoot+Vue的高校师资管理系统教师信息、学院专业、职称调整等管理基于springboot高校师资管理系统+(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/8/7 3:26:17

【毕业设计】基于springboot果蔬种植销售一体化服务平台的设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/8/6 18:15:42

【毕业设计】基于JAVA的菜鸟驿站存取件管理系统设计与实现基于Java Web的校园菜鸟驿站管理系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华