檢視原始碼 erl_prim_loader (erts v15.2)

底層的 Erlang 載入器。此模組用於將所有 Erlang 模組載入系統。啟動腳本也會使用此底層載入器擷取。

erl_prim_loader 知道環境以及如何擷取模組。

命令列標記 -loader Loader 可用於選擇 erl_prim_loader 使用的方法。Erlang 執行時系統支援兩種 Loader 方法:efileinet

命令列標記

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,則此標記是強制性的。

另請參閱

init, erl_boot_server

摘要

函數

不建議使用此函數,請改用 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},否則返回 errorFilenames 是目錄中所有檔案名稱的列表。這些名稱未排序。

Dir 也可以是封存檔中的目錄,例如 $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin。有關封存檔案的資訊,請參閱 code

連結到此函數

read_file(Filename)

檢視原始碼 (自 OTP 27.0 起)
-spec read_file(Filename) -> {ok, Bin} | error when Filename :: string(), Bin :: binary().

使用底層載入器讀取檔案。

如果成功,則返回 {ok, Bin},否則返回 errorBin 是檔案的內容(二進制)。

Filename 也可以是封存檔中的檔案,例如 $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia.beam。有關封存檔案的資訊,請參閱 code

連結到此函數

read_file_info(Filename)

檢視原始碼
-spec read_file_info(Filename) -> {ok, FileInfo} | error
                        when Filename :: string(), FileInfo :: file:file_info().

擷取有關檔案的資訊。

如果成功,則返回 {ok, FileInfo},否則返回 errorFileInfo 是一個記錄 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 set_path(Path) -> ok when Path :: [Dir :: string()].

如果 init 在啟動腳本中解譯 path 命令,則設定載入器的路徑。