NAME
elf_open
—
open ELF objects and ar(1)
archives
LIBRARY
library “libelf”
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
() orelf_openmemory
() was called before a working version was established with elf_version(3).