替换进程exec

1、exec函数族
让父子进程执行不相干的操作
     能够替换进程地址空间的源代码 .txt 段
     当前程序中调用另外一个应用程序
         首先想到 exec 之前需要 fork
返回值:
     如果函数执行成功,不返回
     不如执行失败,打印错误信息,退出当前进程

1、实现换核不换壳功能
2、执行一个另外的程序不需要创建额外的地址空间
3、有一个运行的程序 a,在 a 中调用另外的应用程序
     调用 exec 族函数重新填写新的代码
     exec(“ls”)

2、执行指定目录下的程序
int execl (const char *path, const char *arg, …)
     path:要执行的程序的绝对路径
     变参 arg:要执行的程序需要的参数
     第一 arg:占位
     后边的 arg:命令的参数
     参数写完之后:NULL
     一般执行自己写的程序

int execv(const char *path, char const argv[ ]);
    参数
     path = /bin/ps
     char
args[ ] = {“ps”, “aux”, NULL};
     execv("/bin/ps", args);

3、执行PATH环境变量能够搜索到的程序
int execlp (const char*file, const char *arg, …);
     file:文件名,系统自动从环境变量 “$PATH” 所指出的路径中进行查找。
     第一 arg:占位
     后边的 arg:命令的参数
     参数写完之后:NULL
     执行系统自带的程序
     /bin
     execlp 执行自定义的程序:file 参数绝对值

int execvp (const char *file, const char *arg, …);
*file 文件名,系统自动从环境变量 “$PATH” 所指出的路径中进行查找。

4、
    int execle (const char *path, const char *arg, …)
*path:完整的文件目录路径
系统调用函数
    int execve (const char *path, char *const argv[ ]);
*path:完整的文件目录路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值