| ELF_MEMORY(3) | Library Functions Manual | ELF_MEMORY(3) | 
elf_memory —
#include <libelf.h>
Elf *
  
  elf_memory(char
    *image, size_t
    size);
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).
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).
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 ...
elf_memory() can fail with the following
  errors:
ELF_E_ARGUMENT]NULL value was used for argument
      image or the value of argument
      sz was zero.ELF_E_HEADER]ELF_E_HEADER]ELF_E_RESOURCE]ELF_E_SEQUENCE]elf_memory() was called before a working
      version was set using
      elf_version(3).ELF_E_VERSION]| June 28, 2006 | NetBSD 10.0 |