关闭

execpl

标签: pathunix编程测试
651人阅读 评论(0) 收藏 举报
我是刚开始学习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函数在实际执行的时候根本没有用到第二个参数。
 
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35092次
    • 积分:779
    • 等级:
    • 排名:千里之外
    • 原创:39篇
    • 转载:3篇
    • 译文:0篇
    • 评论:3条
    最新评论