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 Loader
Specifies 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_debug
Makes the efile
loader write some debug information,
such as the reason for failures, while it handles files.
-hosts Hosts
Specifies 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 Cookie
Specifies the cookie of the Erlang runtime system. This flag
is mandatory if flag -loader inet
is present.