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