新闻中心

EEPW首页>嵌入式系统>设计应用> exec执行普通文件和解释器文件的区别

exec执行普通文件和解释器文件的区别

作者: 时间:2016-09-12 来源:网络 收藏

(1) 在命令行输入:./a.py arg1 arg2;

(2)l(./a.py,arg1,arg2,(char*)0));

(3)l(./a.py,”xxx”,arg1,arg2,(char*)0));

方式(1)和方式(2)不等价,因为方式(1)中arg1会被当做第二个参数传递给解释器,而方式(2)中arg2会被当做第二个参数传递给解释器。方式(1)和方式(3)是等价的。

对于foo:

(1) 在命令行输入: ./foo arg1 arg2;

(2)l(./foo,arg1,arg2,(char*)0))

方式(1)和方式(2)是等价的。

4. 回答开始的问题

为了达到命令行方式:test.py arg1 arg2的效果,使用execl(test.py,arg1,arg2,(char*)0))肯定是不行的,因为arg1会被忽略,提示缺少参数。正确的方式是:execl(test.py,”xxx”,arg1,arg2,(char*)0)),这里”xxx”代表任意字符串,不过一般会使用名,即”test.py”。

为了达到命令行方式:python test.py arg1 arg2的效果,使用execl(python,”test.py”,arg1,arg2,(char*)0))也是不行的,因为test.py会被忽略,arg1会被当做第一个参数传给python解释器。正确方式是:

execl(“python,”xxx”,”test.py”,arg1,arg2,(char*)0)),这里”xxx”代表任意字符串,不过一般会使用名,即”test.py”。


上一页 1 2 3 下一页

评论


技术专区

关闭