elf_memory(3) [netbsd man page]
ELF_MEMORY(3) BSD Library Functions Manual ELF_MEMORY(3) NAME
elf_memory -- process an ELF or ar(1) archive mapped into memory LIBRARY
ELF Access Library (libelf, -lelf) SYNOPSIS
#include <libelf.h> Elf * elf_memory(char *image, size_t size); DESCRIPTION
Function elf_memory() is used to process an ELF file or ar(1) archive whose image is present in memory. Argument image points to the start of the memory image of the file or archive. Argument size contains the size in bytes of the memory image. The ELF descriptor is created for reading (i.e., analogous to the use of elf_begin(3) with a command argument value of ELF_C_READ). RETURN VALUES
Function elf_memory() returns a pointer to a new ELF descriptor if successful, or NULL if an error occurred. The return value may be queried for the file type using elf_kind(3). EXAMPLES
To read parse an elf file, use: int fd; void *p; struct stat sb; Elf *e; ... if ((fd = open("./elf-file", O_RDONLY)) < 0 || fstat(fd, &sb) < 0 || (p = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, (off_t) 0)) == MAP_FAILED) { ... handle system error ... } if ((e = elf_memory(p, sb.st_size)) == NULL) { ... handle elf(3) error ... } ... use ELF descriptor "e" here ... ERRORS
Function elf_memory() can fail with the following errors: [ELF_E_ARGUMENT] A NULL value was used for argument image or the value of argument sz was zero. [ELF_E_HEADER] The header of the ELF object contained an unsupported value in its e_ident[EI_CLASS] field. [ELF_E_HEADER] The header of the ELF object contained an unsupported value in its e_ident[EI_DATA] field. [ELF_E_RESOURCE] An out of memory condition was detected. [ELF_E_SEQUENCE] Function elf_memory() was called before a working version was set using elf_version(3). [ELF_E_VERSION] The argument image corresponds to an ELF file with an unsupported version. SEE ALSO
elf(3), elf_begin(3), elf_end(3), elf_errno(3), elf_kind(3), gelf(3) BSD
June 28, 2006 BSD
Check Out this Related Man Page
GELF_GETEHDR(3) BSD Library Functions Manual GELF_GETEHDR(3) NAME
elf32_getehdr, elf64_getehdr, gelf_getehdr -- retrieve the object file header LIBRARY
ELF Access Library (libelf, -lelf) SYNOPSIS
#include <libelf.h> Elf32_Ehdr * elf32_getehdr(Elf *elf); Elf64_Ehdr * elf64_getehdr(Elf *elf); #include <gelf.h> GElf_Ehdr * gelf_getehdr(Elf *elf, GElf_Ehdr *dst); DESCRIPTION
These functions retrieve the ELF object file header from the ELF descriptor elf and return a translated header descriptor to their callers. Functions elf32_getehdr() and elf64_getehdr() return a pointer to the appropriate class-specific header descriptor if it exists in the file referenced by descriptor elf. These functions return NULL if an ELF header was not found in file elf. Function gelf_getehdr() stores a translated copy of the header for ELF file elf into the descriptor pointed to by argument dst. It returns argument dst if successful or NULL in case of failure. RETURN VALUES
These functions return a pointer to a translated header descriptor if successful, or NULL on failure. ERRORS
These functions can fail with the following errors: [ELF_E_ARGUMENT] The argument elf was null. [ELF_E_ARGUMENT] Argument elf was not a descriptor for an ELF file. [ELF_E_ARGUMENT] The elf class of descriptor elf was not recognized. [ELF_E_ARGUMENT] Argument dst was null. [ELF_E_CLASS] The ELF class of descriptor elf did not match that of the API function being called. [ELF_E_HEADER] ELF descriptor elf does not have an associated header. [ELF_E_RESOURCE] An out of memory condition was detected during execution. [ELF_E_SECTION] The ELF descriptor in argument elf did not adhere to the conventions used for extended numbering. [ELF_E_VERSION] The ELF descriptor elf had an unsupported ELF version number. SEE ALSO
elf(3), elf32_newehdr(3), elf64_newehdr(3), elf_flagehdr(3), elf_getident(3), gelf(3), gelf_newehdr(3), elf(5) BSD
December 16, 2006 BSD