首页 > 其他 > 详细

execl函数 参数问题

时间:2015-03-07 22:40:59      阅读:368      评论:0      收藏:0      [点我收藏+]

函数定义:

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

该函数用户进程操作,linux下包含于头文件#include <unistd.h>

函数说明:path表示执行操作的文件路径,后面的不定参数列表为执行该文件时传递过去的参数,最后一个参数需要是NULL来结束。

一个经典例子:

1 #include<unistd.h>
2 main()
3 {
4     execl(“/bin/ls”,”ls”,”-al”,”/etc/passwd”,(char * )0);
5 }

但是,例子中第二个参数并没有被传递过去跟在/bin/ls后执行,而是重写传入了要执行的文件的名字。但是在第一个参数中要被执行的文件名已经非常清除,为何要传入第二个冗余的参数呢?

根据APUE上的解释:我们将第一个参数(argv[0])设置为路径名的文件名分量,某些shell将此参数设置为完全的路径名,这只是一个惯例,我们可以将其设置成任何值。

那么第二个参数会产生什么影响吗?会,它会影响进程名,用ps -ef查看即可验证。

 

execl函数 参数问题

原文:http://www.cnblogs.com/greyyang/p/4321005.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!