直譯器檔案(interpreter file)是以:
#! pathname [ optional-argument ]
作為起始行的文字檔案,exec執行的不是直譯器檔案,而是直譯器,即pathname.
簡單來說,當以乙個直譯器檔案作引數呼叫exec時,exec內部首先會得到錯誤,因為該檔案
並非機器可執行,於是把它識別為直譯器檔案,呼叫pathname(那應該是execl啊,但書上說
是execlp),並傳給它引數:
optional-argument, interpreter-file's path, arguments of the interpreter-file
可能與具體實現有些出入吧,但就此打住好了.
採用直譯器檔案比在shell中呼叫直譯器減少了開銷,在後一種情況,sh首先被執行,然後sh
會對直譯器進行fork, exec, wait,而在前一種情況,只是直接執行直譯器罷了.
*就算直接從shell中呼叫shell script,也是fork, exec, wait,不過exec執行的是sh.
設計模式之直譯器模式(Interpreter)
直譯器模式是我們暫時的最後一講,一般主要應用在oop開發中的編譯器的開發中,所以適用面比較窄。context類是乙個上下文環境類,plus和minus分別是用來計算的實現,如下 public inte ce expression public class plus implements expres...
直譯器檔案(Interpreter Files)
shell和awk 1 perl 1 dtrace 1m 都是可建立可執行的直譯器檔案的。解釋檔案的起始行形式如下 pathname arg pathname是直譯器的路徑,而arg是乙個可選引數。當乙個直譯器檔案執行時,系統將呼叫指定的直譯器。如果arg在直譯器檔案中被指定,它將以引數的形式傳遞給...
python直譯器配置 Python直譯器的配置
1 準備工作 安裝好pycharm2017版本 電腦上安裝好python直譯器 2 本地直譯器配置 配置本地直譯器的步驟相對簡潔直觀 1 單擊工具欄中的設定按鈕。2 在settings preferences對話方塊中選中 project interpreter頁面,在project interpr...