微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > exec执行普通文件和解释器文件的区别

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

时间:09-12 来源:互联网 点击:

rg1 arg2;

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

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

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

对于普通文件foo:

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

(2) execl(./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”。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top