尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

Linux系统编程——进程进阶:exec 族、system 与工作路径操作
📅 发布时间:2026/6/20 14:54:21

一、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)。

相关新闻

  • 实用指南:UE5笔记:OnComponentBeginOverlap
  • 【毕业设计】基于springboot人才公寓管理系统基于springboot公寓管理系统(源码+文档+远程调试,全bao定制等)
  • 校园招聘会组织不再难,统筹安排让就业季更顺畅

最新新闻

  • 防水维修透明化报价体系,青岛防水拒绝任何隐形消费 - 青岛防水品牌推荐
  • CMU生成式AI工程手稿:从重参数化到LoRA的全栈调试实践
  • 2026自组网照明品牌:技术创新引领智慧照明新趋势 - 品牌排行榜
  • 围棋AI分析神器 LizzieYzy:从零到精通的完整指南
  • NXP MCAT与FreeMASTER:FOC电机控制可视化调试实战指南
  • 如何用Xournal++实现完美数字笔记体验:3个步骤掌握跨平台手写批注

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号