ELF_CNTL(3) | Library Functions Manual | ELF_CNTL(3)

# NAME

`elf_cntl` — control an elf file descriptor

# LIBRARY

ELF Access Library (libelf, -lelf)

# SYNOPSIS

`#include <libelf.h>`

int
`elf_cntl`(Elf *elf, Elf_Cmd cmd);

# DESCRIPTION

Function `elf_cntl`() controls the ELF library's subsequent use of the file descriptor used to create ELF descriptor elf.

Argument cmd informs the library of the action to be taken:

`ELF_C_FDDONE`
  This value instructs the ELF library not to perform any further I/O on the file descriptor associated with argument elf. For ELF descriptors opened with mode `ELF_C_WRITE` or `ELF_C_RDWR` subsequent `elf_update`() operations on the descriptor will fail.
`ELF_C_FDREAD`
  This value instructs the ELF library to read in all necessary data associated with ELF descriptor elf into memory so that the underlying file descriptor can be safely closed with command `ELF_C_FDDONE`.

Argument elf must be an ELF descriptor associated with a file system object (e.g., an ar(1) archive, an ELF file, or other data file).

# IMPLEMENTATION NOTES

Due to use of mmap(2) internally, this function is a no-op for ELF objects opened in `ELF_C_READ` mode.

# RETURN VALUES

Function `elf_cntl`() returns 0 on success, or -1 if an error was detected.

# ERRORS

[`ELF_E_ARCHIVE`]
  Argument elf is a descriptor for an archive member.
[`ELF_E_ARGUMENT`]
  Argument elf was `NULL`.
[`ELF_E_ARGUMENT`]
  Argument cmd was not recognized.
[`ELF_E_MODE`]
  An `ELF_C_FDREAD` operation was requested on an ELF descriptor opened for writing.

# SEE ALSO

elf(3), elf_begin(3), elf_end(3), elf_next(3), elf_update(3), gelf(3)

August 9, 2006 | NetBSD 11.0