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.
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
.
RETURN VALUES
The function returns a pointer to a ELF descriptor if successful, or NULL if an
error occurred.
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)