查看源代码 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 命令,则设置加载器的路径。