FreeBSD manual
download PDF document: elf_memory.3.pdf
ELF_MEMORY(3) FreeBSD 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_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)
FreeBSD 14.0-RELEASE-p11 June 28, 2006 FreeBSD 14.0-RELEASE-p11