table of contents
- experimental 0.194+20260315-1
| GELF_NEWPHDR(3) | Libelf Programmer's Manual | GELF_NEWPHDR(3) |
NAME¶
gelf_newphdr - allocate and initialize a new program header table
SYNOPSIS¶
#include <gelf.h> void *gelf_newphdr(Elf *elf, size_t phnum);
DESCRIPTION¶
gelf_newphdr() creates a new program header table with phnum entries for the ELF descriptor elf, zeroing all entries. If a program header table already exists for elf, it is discarded. If phnum is zero, any existing program header table is removed.
This array is maintained within the ELF descriptor and must not be freed directly. After calling gelf_newphdr(), any previously obtained program header pointers for the same descriptor become invalid. An ELF header must exist before creating a program header table.
PARAMETERS¶
RETURN VALUE¶
On success, returns a non-NULL void pointer to the new program header table. The new program header table can be retrieved as a GElf_Phdr * using gelf_getphdr(). elf32_getphdr() or elf64_getphdr() can also be used depending on the class of elf. If phnum is 0, then any existing program header table is removed and NULL is returned. On failure, NULL is returned and elf_errno is set. If elf is NULL, then NULL is returned without setting elf_errno.
Other libelf implementations of gelf_newphdr() may use a different return type.
SEE ALSO¶
gelf_getphdr(3), gelf_update_phdr(3), libelf(3), elf(5)
ATTRIBUTES¶
| Interface | Attribute | Value |
| gelf_newphdr () | Thread safety | MT-Safe |
REPORTING BUGS¶
Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.
| 2025-09-23 | Libelf |