exec执行普通文件和解释器文件的区别
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”。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)