Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

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

ELF_OPEN(3)						   BSD Library Functions Manual 					       ELF_OPEN(3)

NAME
elf_open -- open ELF objects and ar(1) archives LIBRARY
ELF Access Library (libelf, -lelf) SYNOPSIS
#include <libelf.h> Elf * elf_open(int fd); Elf * elf_openmemory(char *image, size_t sz); DESCRIPTION
Important: The functions elf_open() and elf_openmemory() are extensions to the ELF(3) API, for the internal use of the Elftoolchain project. Portable applications should not use these functions. The function elf_open() returns an Elf descriptor opened with mode ELF_C_READ for the ELF object or ar(1) archive referenced by the file descriptor in argument fd. The function elf_openmemory() returns an ELF descriptor opened with mode ELF_C_READ for the ELF object or ar(1) archive contained in the mem- ory area pointed to by the argument image. The argument sz specifies the size of the memory area in bytes. COMPATIBILITY
These functions are non-standard extensions to the ELF(3) API set. The behavior of these functions differs from their counterparts elf_begin(3) and elf_memory(3) in that these functions will successfully open malformed ELF objects and ar(1) archives, returning an Elf descriptor of type ELF_K_NONE. RETURN VALUES
The function returns a pointer to a ELF descriptor if successful, or NULL if an error occurred. ERRORS
These functions can fail with the following errors: [ELF_E_ARGUMENT] The argument fd was of an unsupported file type. [ELF_E_ARGUMENT] The argument sz was zero, or the argument image was NULL. [ELF_E_IO] The file descriptor in argument fd was invalid. [ELF_E_IO] The file descriptor in argument fd could not be read. [ELF_E_RESOURCE] An out of memory condition was encountered. [ELF_E_SEQUENCE] Functions elf_open() or elf_openmemory() was called before a working version was established with elf_version(3). SEE ALSO
elf(3), elf_begin(3), elf_errno(3), elf_memory(3), gelf(3) BSD
May 31, 2012 BSD
Man Page