Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


ELF_OPEN(3)                Library Functions Manual                ELF_OPEN(3)

NAME
     elf_open - open ELF objects and ar(1) archives

LIBRARY
     ELF Access Library (libelf, -lelf)

SYNOPSIS
     #include <libelf.h>

     Elf *
     elf_open(int fd);

     Elf *
     elf_openmemory(char *image, size_t sz);

DESCRIPTION
     Important: The functions elf_open() and elf_openmemory() are extensions
     to the elf(3) API, for the internal use of the Elftoolchain project.
     Portable applications should not use these functions.

     The function elf_open() returns an Elf descriptor opened with mode
     ELF_C_READ for the ELF object or ar(1) archive referenced by the file
     descriptor in argument fd.

     The function elf_openmemory() returns an ELF descriptor opened with mode
     ELF_C_READ for the ELF object or ar(1) archive contained in the memory
     area pointed to by the argument image.  The argument sz specifies the
     size of the memory area in bytes.

RETURN VALUES
     The function returns a pointer to a ELF descriptor if successful, or NULL
     if an error occurred.

COMPATIBILITY
     These functions are non-standard extensions to the elf(3) API set.

     The behavior of these functions differs from their counterparts
     elf_begin(3) and elf_memory(3) in that these functions will successfully
     open malformed ELF objects and ar(1) archives, returning an Elf
     descriptor of type ELF_K_NONE.

ERRORS
     These functions can fail with the following errors:

     [ELF_E_ARGUMENT]  The argument fd was of an unsupported file type.

     [ELF_E_ARGUMENT]  The argument sz was zero, or the argument image was
                       NULL.

     [ELF_E_IO]        The file descriptor in argument fd was invalid.

     [ELF_E_IO]        The file descriptor in argument fd could not be read.

     [ELF_E_RESOURCE]  An out of memory condition was encountered.

     [ELF_E_SEQUENCE]  Functions elf_open() or elf_openmemory() was called
                       before a working version was established with
                       elf_version(3).

SEE ALSO
     elf(3), elf_begin(3), elf_errno(3), elf_memory(3), gelf(3)

NetBSD 10.99                     June 12, 2019                    NetBSD 10.99