execl()函数族

execl()

int execl(const char *path, const char *arg, ...);

其中path是要重载的程序的路劲,后面的是程序需要的参数,最后一个参数需是NULL,才能重载.

路径一般写绝对路径,这个函数适用于自己编写的程序

execl("./myprog", "myprog", "arg1", "arg2", NULL);

execlp()

与execl()相比,区别主要在于可以根据系统的 PATH 环境变量来搜索可执行文件,比如各种指令,在Linux下一切均为文件,如果是重载系统指令,只需要写指令名即可

execlp("ls", "ls", "-l", "-a", NULL);

execle()

与execl相比,主要区别在于execle函数能够额外传递一个环境变量数组,而execl只能传递参数列表

char *envp[] = {"MYENV=custom_value", NULL};
execle("./myprog", "myprog", "arg1", "arg2", NULL, envp);

execv()

与execl()相比,主要区别在于参数传递的方式。使用execl()时,需要手动将参数列出,而使用execv时,需要构建一个字符串数组来传递参数

char *args[] = {"myprog", "arg1", "arg2", NULL};
execv("./myprog", args);

对于这几个长的比较像的函数,还是要分清一下

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值