当前位置:网站首页>程序替换函数
程序替换函数
2022-06-22 14:34:00 【股神。】
进程替换
如果我们要让子进程执行一个“全新的的程序”呢?就得使用进程替换技术。进程不变,仅仅替换当前的代码和数据,叫做进程替换,进程替换并没有创建新的进程,即子进程id并没有改变。只是替换了代码和数据。
execl()
path:要执行的目标程序的路径
arg:填入命令及其参数/可执行程序名
…:可变参数列表,一般填NULL
代码示例:
这个程序替换的作用是:执行ls -a -l -n -i 命令。
注意:execl()不但可以使用系统的命令,还可以使用自己写的程序,即在路径填自己写的可执行程序的路径。
execv()
这个替换函数的使用与execl()差不多,只不过传入的命令用数组表示
代码示例:
execlp()
这个函数不需要带路径,但需要你要执行的可执行程序的文件名,再接命令+参数
代码示例:
execvp()
这个替换函数与execlp相似,只不过命令及其参数用数组表示。
代码示例:
execle()
前三个参数与cxcl相同,第四个参数是用来传给arg对应的可执行程序。
代码示例:
myexe.c源文件:这个程序的作用是打印系统环境变量
运行这个代码:打印系统的环境变量
myload.c源文件:这个代码使用了execle()。用myexe这个程序替换这份代码,将env数据传给这个程序。
运行myload.c:我们发现myexe不再打印系统变量,而是打印我们传给myexe的变量
execve()
这个替换函数与excle相似,只不过可执行程序名用数组表示。
代码示例:
编写记忆
分不清怎么使用这些替换函数,我们可以根据函数名来做记怎么使用这些函数。
函数名有 “l” ,表示要将命令及其参数写出来
有 “v”:用数组表示命令及其参数
有“p”:表示不用带具体路径
有"e":表示需要自己传入自己的环境变量
边栏推荐
- 2020年蓝桥杯省赛真题-走方格(DP/DFS)
- Found several packages [runtime, main] in ‘/usr/local/Cellar/go/1.18/libexec/src/runtime;
- 推进兼容适配,使能协同发展 GBase 5月适配速递
- 我靠副业一年全款买房:那个你看不起的行业,未来十年很赚钱!
- 三菱机械臂demo程序
- 高精度计算
- 基础版现在SQL分析查询不能用了吗?
- Token processing during API encapsulation
- Reconstruction practice of complex C-end project of acquisition technology
- Ml notes matrix fundamental, gradient descent
猜你喜欢

阿里云中间件的开源往事

Meet webassembly again

Verilog使用inout信号的方法

社区文章|MOSN 构建 Subset 优化思路分享

What happened to those who didn't go to college

华为机器学习服务银行卡识别功能,一键实现银行卡识别与绑定

Show me my personal work list for the past two years. I earn 6K a month in my spare time. It's so delicious to have a sideline

晒晒我这两年的私活单,业余时间月入6k,有份副业也太香啦

英国考虑基于国家安全因素让Arm在伦敦上市

Yilian technology rushes to Shenzhen Stock Exchange: annual revenue of RMB 1.4 billion, 65% of which comes from Ningde times
随机推荐
Please, don't be brainwashed. This is the living reality of 90% of Chinese people
uni开发微信小程序自定义相机自动检测(人像+身份证)
快速排序quick_sort
快速玩转CI/CD图形化编排
推進兼容適配,使能協同發展 GBase 5月適配速遞
英国考虑基于国家安全因素让Arm在伦敦上市
I rely on the sideline to buy a house in full one year: the industry you despise will make a lot of money in the next ten years!
2022年失业的人多吗?今年是不是特别难找工作?
Ultimate efficiency is the foundation for the cloud native database tdsql-c to settle down
How to use the concat() function of MySQL
Scala语言学习-04-函数作为参数传入函数-函数作为返回值
Driving the efficient growth of the manufacturing industry, UFIDA u9 cloud is constantly improving the password behind it
曾经,我同时兼职5份工作,只为给女友买个新款耳环......
晒晒我这两年的私活单,业余时间月入6k,有份副业也太香啦
Show me my personal work list for the past two years. I earn 6K a month in my spare time. It's so delicious to have a sideline
The MIHA tour club in June is hot! 500+ posts, more than HC, just this summer (with internal promotion method)
What does Alibaba cloud's cipu release mean for enterprise customers?
The bank card identification function of Huawei machine learning service enables bank card identification and binding with one click
Application of mongodb in Tencent retail premium code
How MySQL modifies the storage engine to InnoDB