ELF_CNTL(3)

NAME
elf_cntl - control an elf file descriptor

LIBRARY
libelf

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