Low-level Erlang loader.
This module is used to load all Erlang modules into the system. The start script is also fetched with this low-level loader.
erl_prim_loader knows about the environment and how to
fetch modules.
Command-line flag -loader Loader can be used to
choose the method used by erl_prim_loader. Two
Loader methods are supported by the Erlang runtime system:
efile and inet.
Functions
get_file(Filename) -> {ok, Bin, FullName} | error
Filename = atom() | string()Bin = binary()FullName = string()
Fetches a file using the low-level loader.
is either an absolute filename or only
the name of the file, for example, "lists.beam". If an internal
path is set to the loader, this path is used to find the file.
is the complete name of the fetched file.
is the contents of the file as a binary.
can also be a file in an archive,
for example,
$OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia.beam.
For information about archive files, see
code(3).
get_path() -> {ok, Path}
Path = [Dir :: string()]
Gets the path set in the loader. The path is
set by the init(3)
process according to information found in the start script.
list_dir(Dir) -> {ok, Filenames} | error
Dir = string()Filenames = [Filename :: string()]
Lists all the files in a directory. Returns
{ok, if successful, otherwise
error. is a list of
the names of all the files in the directory. The names are
not sorted.
can also be a directory in an archive,
for example,
$OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin.
For information about archive files, see
code(3).
read_file_info(Filename) -> {ok, FileInfo} | error
Filename = string()FileInfo = file:file_info()
Retrieves information about a file. Returns
{ok, if successful, otherwise
error. is a record
file_info, defined in the Kernel include file
file.hrl. Include the following directive in the module
from which the function is called:
-include_lib("kernel/include/file.hrl").
For more information about the record file_info, see
file(3).
can also be a file in an archive,
for example,
$OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia.
For information about archive files, see
code(3).
read_link_info(Filename) -> {ok, FileInfo} | error
Filename = string()FileInfo = file:file_info()
Works like
read_file_info/1
except that if is a symbolic link,
information about the link is returned in the file_info
record and the type field of the record is set to
symlink.
If is not a symbolic link, this function
returns exactly the same result as read_file_info/1.
On platforms that do not support symbolic links, this function
is always equivalent to read_file_info/1.
set_path(Path) -> ok
Path = [Dir :: string()]
Sets the path of the loader if
init(3)
interprets a path command in the start script.
Command-Line Flags
The erl_prim_loader module interprets the following
command-line flags:
-loader LoaderSpecifies the name of the loader used by
erl_prim_loader. Loader can be efile
(use the local file system) or inet (load using
the boot_server on another Erlang node).
If flag -loader is omitted, it defaults to
efile.
-loader_debugMakes the efile loader write some debug information,
such as the reason for failures, while it handles files.
-hosts HostsSpecifies which other Erlang nodes the inet loader
can use. This flag is mandatory if flag -loader inet
is present. On each host, there must be on Erlang node
with the
erl_boot_server(3),
which handles the load requests.
Hosts is a list of IP addresses (hostnames
are not acceptable).
-setcookie CookieSpecifies the cookie of the Erlang runtime system. This flag
is mandatory if flag -loader inet is present.