FreeBSD Manual Pages
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 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 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
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | ERRORS | SEE ALSO
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=elf_memory&sektion=3&manpath=FreeBSD+9.2-RELEASE>