execpl

转载 2007年09月18日 15:26:00
我是刚开始学习unix 编程,我想大家肯定经常会碰到execlp函数
我碰到的第一个例子就是execlp("ls","ls","-a",(char *)0)
我不是没有看手册,手册中是这样写的:
int execlp(const char *path, const char *arg,...);
我当时觉得ls就是对应的char *path, 那么第二个ls就是参数了
这样就不对了。
我就到版上请教,有人告诉我ls类似于argv[0],我明白他的意思
就是函数名嘛!
我觉得什么事情都有它的道理,既然前面有了ls,其实就是告诉系统
要执行ls 命令,那后面有蹦出个argv[0]有什么意思。(我就多问了两句,就被封掉了)。
我后来试过execlp("ls","-a",(char *0))竟然执行也通过了,我就感到更加的迷惑了。如果第二个参数是命令的名称,那么-a怎么能执行。而且执行结果和
execlp("ls","ls","-a",(char *)0)不同
我观察的结果是execlp("ls","-a",(char *0))很可能执行的是ls而不是 ls -a
后面我就做了一系列测试,证明了我的猜测时正确的。
我尝试
execlp("ls",''","-a",(char *0))和execlp("ls","sfsdfsdf","-a",(char *0))
结果等价于ls -a,
因此我在这里大胆猜测,execlp函数在实际执行的时候根本没有用到第二个参数。
 

相关文章推荐

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)