久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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 下一頁

評論


技術專區

關閉