ELF_OPEN(3)

ELF_OPEN(3) | Library Functions Manual | ELF_OPEN(3)

# NAME

elf_open — open ELF objects and ar(1) archives

# LIBRARY

ELF Access Library (libelf, -lelf)

# SYNOPSIS

#include <libelf.h>
Elf *
elf_open(int fd);
Elf *
elf_openmemory(char *image, size_t sz);

# DESCRIPTION

Important: The functions elf_open() and elf_openmemory() are extensions to the ELF(3) API, for the internal use of the Elftoolchain project. Portable applications should not use these functions.
The function elf_open() returns an Elf descriptor opened with mode `ELF_C_READ` for the ELF object or ar(1) archive referenced by the file descriptor in argument fd.
The function elf_openmemory() returns an ELF descriptor opened with mode `ELF_C_READ` for the ELF object or ar(1) archive contained in the memory area pointed to by the argument image. The argument sz specifies the size of the memory area in bytes.

# COMPATIBILITY

These functions are non-standard extensions to the ELF(3) API set.
The behavior of these functions differs from their counterparts elf_begin(3) and elf_memory(3) in that these functions will successfully open malformed ELF objects and ar(1) archives, returning an Elf descriptor of type `ELF_K_NONE`.

# RETURN VALUES

The function returns a pointer to a ELF descriptor if successful, or NULL if an error occurred.

# ERRORS

These functions can fail with the following errors:

[`ELF_E_ARGUMENT`]
  The argument fd was of an unsupported file type.
[`ELF_E_ARGUMENT`]
  The argument sz was zero, or the argument image was NULL.
[`ELF_E_IO`]
  The file descriptor in argument fd was invalid.
[`ELF_E_IO`]
  The file descriptor in argument fd could not be read.
[`ELF_E_RESOURCE`]
  An out of memory condition was encountered.
[`ELF_E_SEQUENCE`]
  Functions elf_open() or elf_openmemory() was called before a working version was established with elf_version(3).

# SEE ALSO

elf(3), elf_begin(3), elf_errno(3), elf_memory(3), gelf(3)

May 31, 2012 | NetBSD 8.0