elf_memory(3) - NetBSD Manual Pages

ELF_MEMORY(3)           NetBSD Library Functions Manual          ELF_MEMORY(3)


NAME
elf_memory -- process an ELF or ar(1) archive mapped into memory
LIBRARY
ELF Object Manipulation 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 ar- chive. 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 suc- cessful, 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 ver- sion was set using elf_version(3). [ELF_E_VERSION] The ELF object referenced by argument image was of an unsupported ELF version.
SEE ALSO
elf(3), elf_begin(3), elf_end(3), elf_errno(3), elf_kind(3), gelf(3) NetBSD 7.0 June 28, 2006 NetBSD 7.0

Powered by man-cgi (2026-04-06). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.