Linux系统的exec替换函数

fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序。

exec函数负责读取可执行行文件并将其载入地址空间开始运行。

我们有六种不同的exec函数可供使用,它们常常被统称为exec函数。

下面这几个是exec函数的库函数,它们都依存于execve系统调用函数:

 execve系统调用函数:

返回值:成功不返回,出错返回-1

file参数:其中filename等于path,取路径名为参数。file取文件名作为参数(函数会自行去PATH环境变量里面找路径)。

arg参数:其中以arg为名的都要求将新程序的每个命令行参数都说明为一个单独的参数,最后以空指针结尾。

                以argv[]为名的则应先构造一个指向各参数的指针数组,然后将该数组地址作为这三个函数的参数。

envp参数:允许构造一个环境变量的数组。

使用演示:

因为六个函数使用起来类似,我只演示了execve函数,使用了路径名,自己构造的argv和默认的envp环境变量。

 运行结果:

可以看到ps -f的pid就是main函数的pid,说明ps -f就是main函数替换后的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值