进程替换函数与shenll命令行解释器

execlp(const char *file,...)

file只需要提供函数名字,系统会在环境变量自动找到合适的

execv(const char *path,char * const argv\[\])

这里得第二个参数是指针数组,也就是说,我们之前不是要手动输入吗,这里不需要,我们提前把要执行的写到表格中,这里直接传一整个表格就可以了

execvp(const char* file,char *const argv\[\])

这里是上面两个的结合

总结:

p=PATH在环境变量里面找

v:传入参数表,不需要一个个写

e:传入你自己构造的环境变量

execvpe(const char* file,char *const argv\[\],char*const envp\[\])

我我们写file是要去环境变量里面寻找,但是有些时候,环境变量是找不到的,所以这里第三个参数就表示,在我们自己设立的环境变量里面去寻找

补充:我们的替换是存在进程层面的,也就是说,只要一个程序开启运行变成了一个进程,此时就可以被替换,不在乎它是什么语言

我们第三个参数除了写我们自己的,如果不想写可以用

environ来占位,表示使用老的环境变量

我们上讲的其实都是库函数

他们都来自于我们的系统调用

execvel(const char *filename,char * const argv\[\],char *const envp\[\])

本质库函数都是在调用系统调用

自主shell命令行解释器

相关推荐
YukiRinLL1 小时前
字符串存储与 BF、KMP 匹配算法
数据结构·算法
计算机魔术师1 小时前
砸了2200亿美元还是不够用,AWS说2027年也卖完了
前端
2601_965305391 小时前
智慧农用的农业四情分别是什么
服务器·前端·人工智能
小超人诞生日记1 小时前
Linux:环境变量 & 进程虚拟地址空间
linux·算法
小白起 v1 小时前
【算法学习 · 01】深入理解大 O 表示法:从「能跑就行」到「专业评估」算法性能
算法
梦帮科技1 小时前
脑机接口(BCI)与神经系统安全:EEG 神经电信号欺骗注入、神经闭环解码算法与生物黑客反制
算法·安全
老徐聊GEO1 小时前
把“安徽“写进题面之后:多平台AI推荐名单的区域扰动测量(2026)
前端·人工智能·算法·geo优化
人工智能培训1 小时前
具身智能:让人工智能拥有物理世界感知能力
大数据·人工智能·学习·算法·机器学习
果壳science1 小时前
张祥前最新研究成果登上SCI期刊!
笔记·嵌入式硬件·算法·硬件工程·几何学