cc [flag . . . ] file . . . -lelf [library] . . .#include <libelf.h>
Elf32_Ehdr elf32_getehdr(Elf elf);
Elf32_Ehdr elf32_newehdr(Elf elf);
Elf64_Ehdr elf64_getehdr(Elf elf);
Elf64_Ehdr elf64_newehdr(Elf elf);
The header includes the following members.
unsigned char e_ident[EI_NIDENT]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx;
elf32_newehdr automatically sets the ELF_F_DIRTY bit [see elf_flag(3elf)]. A program may use elf_getident to inspect the identification bytes from a file.
For a 64-bit class file, elf64_getehdr returns a pointer to an ELF header, if one is available for the ELF descriptor elf. If no header exists for the descriptor, elf64_newehdr allocates a ``clean'' one, but it otherwise behaves the same as elf64_getehdr. It does not allocate a new header if one exists already. If no header exists (for elf_getehdr), one cannot be created (for elf_newehdr), a system error occurs, the file is not a 64-bit class file, or elf is null, both functions return a null pointer.
The header includes the following members.
unsigned char e_ident[EI_NIDENT]; Elf64_Half e_type; Elf64_Half e_machine; Elf64_Word e_version; Elf64_Addr e_entry; Elf64_Off e_phoff; Elf64_Off e_shoff; Elf64_Word e_flags; Elf64_Half e_ehsize; Elf64_Half e_phentsize; Elf64_Half e_phnum; Elf64_Half e_shentsize; Elf64_Half e_shnum; Elf64_Half e_shstrndx;
elf64_newehdr automatically sets the ELF_F_DIRTY bit [see elf_flag(3elf)]. A program may use elf_getident to inspect the identification bytes from a file.