新闻详情

新闻详情

首页 / 资讯中心 / 详情

Linux学习日记:系统调用与进程替换exec家族

发布时间:2026/9/29 2:48:54来源:尧图网络
Linux学习日记:系统调用与进程替换exec家族
系统调用与库函数系统调用的实现在内核中属于内核空间库函数的实现在函数库中属于用户空间。通过系统调用可以执行内核可以理解为操作系统的核心中的函数实现系统功能。例如printf需要访问内核中的函数去输出到屏幕上硬件系统调用执行过程1.对系统调用函数和内核函数进行编号使其一一对应上例如系统调用中5是open()函数对应内核中的5也是sys_open()函数2.当程序进行到open()这个函数时会产生0x80号中断同时将系统调用号发送给Eax寄存器3.内核接收到0x80号中断后去Eax寄存器中寻找系统调用号4.内核根据对应的系统调用号实现对应内核函数最后将函数结果发送给Eax寄存器5.系统调用返回Eax寄存器中的函数结果程序继续运行进程替换exec()全新进程的产生过程先由fork()复制当前进程再由exec()替换当前进程exec函数族成员函数execlexecleexeclpexecvexecveexecvp除了execve为系统调用外其余全为库函数#include unistd.h int execl(const char *path, const char *arg0, ..., /* (char *) NULL */);参数path新程序的完整路径如/usr/bin/ls。arg0通常为新程序的名称如ls。...可变参数列表表示命令行参数以(char *) NULL结尾。若第10行运行成功则进程已被替换成ps后续代码不会运行text进程先从bash处先复制一份再替换成ps进程替换进程保留原进程的PID、父进程的PPID6种exec函数的传参方式实践实现一个简单的bash了解为什么所有进程都是从bash处复制来的代码实现实现结果很简单的一段代码不过还不能传其他参数例如 ps -f我们作如下修改使其能传额外参数将控制界面写入的数据通过get_cmd()函数进行分割装到字符串数组里最后利用execvp直接传字符串数组的特性完成额外传参。get_cmd()函数内容如下strtok()函数可以将一段字符串以参数2分隔符分开同时会有指针停在上次分割的位置通过多次分割完成对buff额外传参的分割即可。这样一个可以传额外参数的mybash就完成了。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

OpenClaw 本地 AI 智能体新范式:TaoToken 统一 Key 接入与技能插件化配置实战 2026/9/29 16:52:21

OpenClaw 本地 AI 智能体新范式:TaoToken 统一 Key 接入与技能插件化配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AutoLabelImg实战:自动预标注到YOLO训练,效率提升指南 2026/9/29 16:52:08

AutoLabelImg实战:自动预标注到YOLO训练,效率提升指南

简介:这是一款面向深度学习图像识别场景的自动标注工具 AutoLabelImg,支持 YOLOv8/YOLOv9/YOLOv10 与 RT-DETR 等主流检测模型,适合需要快速构建训练数据集的算法工程师与科研人员。资源包共 532 个文件,压缩后约 83MB&#xff0c…

阅读更多 →
WX1860AL4千兆网卡iperf3性能不达标?五大根因排查实战 2026/9/29 16:51:55

WX1860AL4千兆网卡iperf3性能不达标?五大根因排查实战

上周刚把一张网讯WX1860AL4四口千兆网卡装进服务器,兴冲冲地拿iperf3打流,结果傻眼了:服务端到客户端怎么跑都只有480Mbps左右,离千兆Line Rate差了整整一半。第一反应是网卡有问题,退换货申请都写到一半了。但在折腾了…

阅读更多 →
从零构建AI工程能力:模型部署、推理优化与监控实战 2026/9/29 16:51:55

从零构建AI工程能力:模型部署、推理优化与监控实战

从零构建AI工程能力这件事,我前前后后折腾了差不多两年。最开始的时候,我和大多数人一样,觉得搞AI就是调包、跑模型、看准确率,直到真正要把一个模型塞进生产环境,才发现自己连最基本的工程化思维都没有。模型在notebo…

阅读更多 →
模块化的思想内核:超越文件拆分的边界思维 2026/9/29 16:51:55

模块化的思想内核:超越文件拆分的边界思维

先讲一件真事儿。前两年我参与过一个中后台项目,接手时正好赶上团队做“模块化重构”,把原来几个动辄上千行的巨型JS文件按功能拆分成了50多个小文件,每个文件平均不到100行,目录层级也从两层直接拉到了五层。重构完成那天大家挺高…

阅读更多 →
Agent记忆管理实战:从hindsight机制到MCP与Docker落地 2026/9/29 16:51:54

Agent记忆管理实战:从hindsight机制到MCP与Docker落地

1. 从“hindsight”这个词说起:为什么它值得单独拿出来聊 第一次看到“hindsight”作为项目名,我脑子里蹦出来的不是词典释义,而是一个很具体的开发场景:Agent 在跑完一轮任务之后,回头翻自己的记忆,发现“…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉