檢視原始碼 erl_prim_loader (erts v15.2)
底層的 Erlang 載入器。此模組用於將所有 Erlang 模組載入系統。啟動腳本也會使用此底層載入器擷取。
erl_prim_loader
知道環境以及如何擷取模組。
命令列標記 -loader Loader
可用於選擇 erl_prim_loader
使用的方法。Erlang 執行時系統支援兩種 Loader
方法:efile
和 inet
。
命令列標記
erl_prim_loader
模組會解譯下列命令列標記:
-loader Loader
- 指定erl_prim_loader
使用的載入器名稱。Loader
可以是efile
(使用本機檔案系統)或inet
(使用另一個 Erlang 節點上的boot_server
載入)。如果省略標記
-loader
,則預設為efile
。-loader_debug
- 使efile
載入器在處理檔案時寫入一些偵錯資訊,例如失敗的原因。-hosts Hosts
- 指定inet
載入器可以使用哪些其他 Erlang 節點。如果存在標記-loader inet
,則此標記是強制性的。在每個主機上,必須有一個 Erlang 節點具有erl_boot_server
,它會處理載入請求。Hosts
是 IP 位址列表(不接受主機名稱)。-setcookie Cookie
- 指定 Erlang 執行時系統的 cookie。如果存在標記-loader inet
,則此標記是強制性的。
另請參閱
摘要
函數
不建議使用此函數,請改用 read_file/1
。
不建議使用此函數,請改用 code:get_path/0
。
列出目錄中的所有檔案。
使用底層載入器讀取檔案。
擷取有關檔案的資訊。
作用與 read_file_info/1
相同,除非 Filename
是符號連結,否則連結的資訊會返回在 file_info
記錄中,並且記錄的 type
欄位會設定為 symlink
。
如果 init
在啟動腳本中解譯 path
命令,則設定載入器的路徑。
函數
-spec get_file(Filename) -> {ok, Bin, FullName} | error when Filename :: atom() | string(), Bin :: binary(), FullName :: string().
不建議使用此函數,請改用 read_file/1
。
使用底層載入器擷取檔案。Filename
是絕對檔名或僅為檔案名稱,例如 "lists.beam"
。如果載入器設定了內部路徑,則會使用此路徑來尋找檔案。FullName
是擷取檔案的完整名稱。Bin
是檔案的內容(二進制)。
Filename
也可以是封存檔中的檔案,例如 $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia.beam
。有關封存檔案的資訊,請參閱 code
。
-spec get_path() -> {ok, Path} when Path :: [Dir :: string()].
不建議使用此函數,請改用 code:get_path/0
。
取得在載入器中設定的路徑。路徑由 init
程序根據在啟動腳本中找到的資訊設定。
-spec list_dir(Dir) -> {ok, Filenames} | error when Dir :: string(), Filenames :: [Filename :: string()].
列出目錄中的所有檔案。
如果成功,則返回 {ok, Filenames}
,否則返回 error
。Filenames
是目錄中所有檔案名稱的列表。這些名稱未排序。
Dir
也可以是封存檔中的目錄,例如 $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin
。有關封存檔案的資訊,請參閱 code
。
使用底層載入器讀取檔案。
如果成功,則返回 {ok, Bin}
,否則返回 error
。Bin
是檔案的內容(二進制)。
Filename
也可以是封存檔中的檔案,例如 $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia.beam
。有關封存檔案的資訊,請參閱 code
。
-spec read_file_info(Filename) -> {ok, FileInfo} | error when Filename :: string(), FileInfo :: file:file_info().
擷取有關檔案的資訊。
如果成功,則返回 {ok, FileInfo}
,否則返回 error
。FileInfo
是一個記錄 file_info
,定義在 Kernel 包含檔案 file.hrl
中。在呼叫此函數的模組中加入下列指示詞:
-include_lib("kernel/include/file.hrl").
有關此記錄的更多資訊,請參閱 file:read_file_info/2
。
Filename
也可以是封存檔中的檔案,例如 $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia
。有關封存檔案的資訊,請參閱 code
。
-spec read_link_info(Filename) -> {ok, FileInfo} | error when Filename :: string(), FileInfo :: file:file_info().
作用與 read_file_info/1
相同,除非 Filename
是符號連結,否則連結的資訊會返回在 file_info
記錄中,並且記錄的 type
欄位會設定為 symlink
。
如果 Filename
不是符號連結,則此函數返回的結果與 read_file_info/1
完全相同。在不支援符號連結的平台上,此函數始終等效於 read_file_info/1
。
-spec set_path(Path) -> ok when Path :: [Dir :: string()].
如果 init
在啟動腳本中解譯 path
命令,則設定載入器的路徑。