Provided by: erlang-manpages_18.3-dfsg-1ubuntu3.1_all bug

NAME

       erl_prim_loader - Low Level Erlang Loader

DESCRIPTION

       erl_prim_loader  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.

       The -loader Loader command line flag can  be  used  to  choose  the  method  used  by  the
       erl_prim_loader.  Two Loader methods are supported by the Erlang runtime system: efile and
       inet.

   Warning:
       The support for loading of code from archive files is experimental. The  sole  purpose  of
       releasing  it  before it is ready is to obtain early feedback. The file format, semantics,
       interfaces etc. may  be  changed  in  a  future  release.  The  functions  list_dir/1  and
       read_file_info/1 as well as the flag -loader_debug are also experimental

DATA TYPES

       host() = atom()

EXPORTS

       start(Id, Loader, Hosts) -> {ok, Pid} | {error, What}

              Types:

                 Id = term()
                 Loader = atom() | string()
                 Hosts = Host | [Host]
                 Host = host()
                 Pid = pid()
                 What = term()

              Starts  the  Erlang  low  level loader. This function is called by the init process
              (and module). The init process reads the command line flags -id Id, -loader Loader,
              and -hosts Hosts. These are the arguments supplied to the start/3 function.

              If -loader is not given, the default loader is efile which tells the system to read
              from the file system.

              If -loader is inet, the -id Id, -hosts Hosts, and -setcookie Cookie flags must also
              be  supplied.  Hosts  identifies hosts which this node can contact in order to load
              modules. One Erlang runtime system with a erl_boot_server process must  be  started
              on   each   of  hosts  given  in  Hosts  in  order  to  answer  the  requests.  See
              erl_boot_server(3erl).

       get_file(Filename) -> {ok, Bin, FullName} | error

              Types:

                 Filename = atom() | string()
                 Bin = binary()
                 FullName = string()

              This function fetches a file using the low level  loader.  Filename  is  either  an
              absolute  file  name  or just 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. If  a  user
              supplied  loader  is  used, the path can be stripped off if it is obsolete, and the
              loader does not use a path. FullName is the complete name of the fetched file.  Bin
              is the contents of the file as a binary.

              The    Filename    can    also   be   a   file   in   an   archive.   For   example
              $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia.beam.  See  code(3erl)  about
              archive files.

       get_path() -> {ok, Path}

              Types:

                 Path = [Dir :: string()]

              This  function gets the path set in the loader. The path is set by the init process
              according to information found in the start script.

       list_dir(Dir) -> {ok, Filenames} | error

              Types:

                 Dir = string()
                 Filenames = [Filename :: string()]

              Lists all the  files  in  a  directory.  Returns  {ok,  Filenames}  if  successful.
              Otherwise,  it  returns error. Filenames is a list of the names of all the files in
              the directory. The names are not sorted.

              The   Dir   can   also   be   a   directory   in   an    archive.    For    example
              $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin. See code(3erl) about archive files.

       read_file_info(Filename) -> {ok, FileInfo} | error

              Types:

                 Filename = string()
                 FileInfo = file:file_info()

              Retrieves information about a file. Returns {ok, FileInfo} if successful, otherwise
              error. FileInfo 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").

              See file(3erl) for more info about the record file_info.

              The    Filename    can    also   be   a   file   in   an   archive.   For   example
              $OTPROOT/lib/mnesia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia. See code(3erl) about archive
              files.

       read_link_info(Filename) -> {ok, FileInfo} | error

              Types:

                 Filename = string()
                 FileInfo = file:file_info()

              This  function  works  like  read_file_info/1 except that if Filename is a symbolic
              link, information about the link will be returned in the file_info record  and  the
              type field of the record will be set to symlink.

              If  Filename  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

              Types:

                 Path = [Dir :: string()]

              This  function sets the path of the loader if init 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 the -loader flag 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
           the  -loader inet flag is present. On each host, there must be on Erlang node with the
           erl_boot_server which handles the load requests. Hosts  is  a  list  of  IP  addresses
           (hostnames are not acceptable).

         -id Id:
           Specifies  the  identity  of  the  Erlang  runtime  system.  If  the  system runs as a
           distributed node, Id must be identical to the name supplied with the -sname  or  -name
           distribution flags.

         -setcookie Cookie:
           Specifies  the  cookie  of  the  Erlang  runtime system. This flag is mandatory if the
           -loader inet flag is present.

SEE ALSO

       init(3erl), erl_boot_server(3erl)