Linux编程--exec函数族

exec 函数族

介绍:fork创建进程之后,子进程和父进程执行相同的代码,但是在实际开发当中,我们希望父子进程执行不同的代码。

用shell举例shell在执行我的编译好的文件时先fork了一个子进程用子进程利用exec来调用我们写的程序,这样shell进程不受影响我们的程序也成了他的子进程,并且他可以继续fork来执行更多程序。

作用:执行指定的程序

#include  <unistd.h>

  int execl(const char *path, const char *arg, …);        //(char*)0

  int execlp(const char *file, const char *arg, …);

 成功时执行指定的程序;失败时返回EOF

 path   执行的程序名称,包含路径

 arg…  传递给执行的程序的参数列表

 file   执行的程序的名称,在PATH中查找

注意:两个函数区别execlp不需要写文件名全路径,在PATH查找

最后一个参数必须用空指针(NULL)作结束

进程当前内容被指定的程序替换,但进程号不变

第0个参数必须要写,虽然它没有使用

举例

#include <stdio.h>
#include <unistd.h>
 
int main(){
   char *agv[] = {"ls","-a","-l","./",NULL};
 
   if(execv("/bin/ls",agv)<0){
	perror("execv");
   }
    
    printf("******************");
 

	system("ls -a -l ./");

 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值