elf_open —
open
ELF objects and ar(1) archives
ELF Access Library (libelf, -lelf)
#include
<libelf.h>
Elf *
elf_open(
int
fd);
Elf *
elf_openmemory(
char
*image,
size_t
sz);
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.
The function returns a pointer to a ELF descriptor if successful, or NULL if an
error occurred.
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
.
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).
elf(3),
elf_begin(3),
elf_errno(3),
elf_memory(3),
gelf(3)