码迷,mamicode.com
首页 > 其他好文 > 详细

execl函数 参数问题

时间:2015-03-07 22:43:21      阅读:193      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!