elf32_getphdr
, elf64_getphdr
,
gelf_getphdr
—
retrieve an ELF program header table
ELF Access Library (libelf, -lelf)
#include <libelf.h>
Elf32_Phdr *
elf32_getphdr
(Elf
*elf);
Elf64_Phdr *
elf64_getphdr
(Elf
*elf);
#include
<gelf.h>
GElf_Phdr *
gelf_getphdr
(Elf
*elf, int index,
GElf_Phdr *dst);
These functions retrieve and translate ELF program header information from an
ELF descriptor, if this information exists.
Functions elf32_getphdr
() and
elf64_getphdr
() return a pointer to an array of
translated Elf32_Phdr and
Elf64_Phdr descriptors respectively. These descriptors
are described in
elf(5).
The number of entries in this array may be determined using the
elf_getphnum(3)
function.
Function gelf_getphdr
() will retrieve the
program header table entry at index index from ELF
descriptor elf. The translated program header table
entry will be written to the address pointed to be argument
dst.
Applications may inform the library of modifications to a program
header table entry by using the
elf_flagphdr(3)
API. Applications using the
gelf(3)
interface need to use the
gelf_update_phdr(3)
API to copy modifications to a program header entry back to the underlying
ELF descriptor.
The functions a valid pointer if successful, or NULL in case an error was
encountered.
These functions may fail with the following errors:
- [
ELF_E_ARGUMENT
]
- Argument elf was NULL.
- [
ELF_E_ARGUMENT
]
- Argument elf was not a descriptor for an ELF
object.
- [
ELF_E_ARGUMENT
]
- Argument dst was NULL.
- [
ELF_E_ARGUMENT
]
- Index index was out of range.
- [
ELF_E_CLASS
]
- The class of ELF descriptor elf did not match the
expected class of the function being called.
- []
- ELF descriptor elf did not possess an executable
header.
- []
- ELF descriptor elf had a corrupt executable
header.
- [
ELF_E_RESOURCE
]
- An out of memory condition was detected.
- [
ELF_E_SECTION
]
- The ELF descriptor in argument elf did not adhere to
the conventions used for extended numbering.
- [
ELF_VERSION
]
- ELF descriptor elf was of an unsupported
version.
elf(3),
elf32_getehdr(3),
elf32_newphdr(3),
elf64_getehdr(3),
elf64_newphdr(3),
elf_flagphdr(3),
elf_getphnum(3),
gelf(3),
gelf_getehdr(3),
gelf_newphdr(3),
gelf_update_phdr(3),
elf(5)