NAME
elf_getehdr: elf32_getehdr(), elf32_newehdr(), elf64_getehdr(), elf64_newehdr() — retrieve class-dependent object file header for elf32 or elf64 file
SYNOPSIS
Command:
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);
DESCRIPTION
32-bit Class File
For a 32-bit class file,
elf32_getehdr()
returns a pointer to an
ELF header, if one is available for the ELF descriptor
elf.
If no header exists for the descriptor,
elf32_newehdr()
allocates a "clean" one, but it otherwise behaves the same as
elf32_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 32-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];
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(3E)).
A program may use
elf_getident
to inspect the identification bytes from a file.
64-bit Class 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(3E)).
A program may use
elf_getident
to inspect the identification bytes from a file.