Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 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)

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+12.0-RELEASE+and+Ports>

home | help