新聞中心

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

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 怀远县| 横峰县| 阳泉市| 红河县| 精河县| 修水县| 色达县| 晋城| 登封市| 琼中| 张家港市| 泽库县| 赤峰市| 清苑县| 龙井市| 蒙城县| 利辛县| 邯郸县| 长岛县| 扎鲁特旗| 金平| 儋州市| 太仓市| 芒康县| 胶南市| 夏河县| 五莲县| 河池市| 交口县| 威海市| 德江县| 霍山县| 商城县| 云林县| 牡丹江市| 莱西市| 虞城县| 景洪市| 青铜峡市| 广平县| 曲沃县|