elf_memory - Man Page

create an ELF descriptor from a memory buffer

Synopsis

#include <libelf.h>

Elf * elf_memory(char *" image , size_t size );

Description

The elf_memory() function creates a new ELF descriptor from a memory region containing an ELF object.  This function is used when the ELF data is already present in memory rather than being read from a file descriptor.

The memory pointed to by image must contain a complete ELF file or archive. The contents must remain valid and unmodified for the lifetime of the resulting ELF descriptor.

The ELF descriptor returned by elf_memory() is opened in read-only mode using ELF_C_READ_MMAP_PRIVATE (see elf_begin). The underlying memory image should not be directly modified by the application  while its ELF descriptor is open.  Some libelf functions, such as elf_compress() and gelf_update_*(), may internally modify the underlying image and therefore require that the underlying image be writable.  The use of a read-only image (e.g., memory mapped with PROT_READ only) may result in failures or crashes.

Parameters

image

A pointer to a memory buffer that contains the complete contents of an ELF file or archive. If NULL, this function fails and returns NULL.

size

The size in bytes of the memory region pointed to by image. Must be at least as much as a full ELF header and should cover the entire ELF object.

Return Value

On success, elf_memory() returns a pointer to an Elf descriptor representing the archive or ELF file contained in image.

On failure, it returns NULL and sets an error code retrievable by elf_errmsg(3).

See Also

elf_begin(3), elf_errmsg(3), libelf(3), elf(5)

Attributes

Interface       Attribute       Value
elf_memory()    Thread safety   MT-Safe

Reporting Bugs

Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.

Info

2025-06-23 Libelf Programmer's Manual