ELF_GETPHDR(3E)ELF_GETPHDR(3E) NAME elf_getphdr elf32_getphdr, elf32_newphdr, elf64_getphdr, elf64_newphdr - Retrieves class-dependent program header table SYNOPSIS cc [flag ...] file ... -lelf [library ...] #include <libelf.h> Elf32_Phdr *elf32_getphdr(Elf *elf); Elf32_Phdr *elf32_newphdr(Elf *elf, size_t count); Elf64_Phdr *elf64_getphdr(Elf *elf); Elf64_Phdr *elf64_newphdr(Elf *elf, size_t count); DESCRIPTION For a 32-bit class file, elf32_getphdr returns a pointer to the program execution header table, if one is available for the ELF descriptor, elf. elf32_newphdr allocates a new table with count entries, regardless of whether one existed previously, and sets the ELF_F_DIRTY bit for the table; see elf_flag(3E). Specifying a zero count deletes an existing table. Note that this behavior differs from that of elf32_newehdr allowing a program to replace or delete the program header table, and changing its size, if necessary. See elf32_getehdr(3E) for details. If no program header table exists, the file is not a 32-bit class file, an error occurs, or elf is null, both functions return a null pointer. elf32_newphdr also returns a null pointer if count is zero. The table is an array of Elf32_Phdr structures, each of which includes the following members: Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align; The ELF header's e_phnum member tells how many entries the program header table has [see elf_getehdr(3E)]. A program may inspect this value to determine the size of an existing table; elf32_newphdr automatically sets the member's value to count. If the program is building a new file, it is responsible for creating the file's ELF header before creating the program header table. The 64-bit class works identically, simply replacing all instances of 32 in the description and table with 64. SEE ALSO elf(3E), elf_begin(3E), elf_flag(3E), elf_getehdr(3E)