elf_cntl(3) [freebsd man page]
ELF_CNTL(3) BSD 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) BSD
August 9, 2006 BSD
Check Out this Related Man Page
elf_cntl(3ELF) ELF Library Functions elf_cntl(3ELF) NAME
elf_cntl - control an elf file descriptor SYNOPSIS
cc [ flag ... ] file ... -lelf [ library ... ] #include <libelf.h> int elf_cntl(Elf *elf, Elf_Cmd cmd); DESCRIPTION
elf_cntl() instructs the library to modify its behavior with respect to an ELF descriptor, elf. As elf_begin(3ELF) describes, an ELF descriptor can have multiple activations, and multiple ELF descriptors may share a single file descriptor. Generally, elf_cntl() commands apply to all activations of elf. Moreover, if the ELF descriptor is associated with an archive file, descriptors for members within the ar- chive will also be affected as described below. Unless stated otherwise, operations on archive members do not affect the descriptor for the containing archive. The cmd argument tells what actions to take and may have the following values: ELF_C_FDDONE This value tells the library not to use the file descriptor associated with elf. A program should use this command when it has requested all the information it cares to use and wishes to avoid the overhead of reading the rest of the file. The memory for all completed operations remains valid, but later file operations, such as the initial elf_getdata() for a sec- tion, will fail if the data are not in memory already. ELF_C_FDREAD This command is similar to ELF_C_FDDONE, except it forces the library to read the rest of the file. A program should use this command when it must close the file descriptor but has not yet read everything it needs from the file. After elf_cntl() completes the ELF_C_FDREAD command, future operations, such as elf_getdata(), will use the memory version of the file without needing to use the file descriptor. If elf_cntl() succeeds, it returns 0. Otherwise elf was NULL or an error occurred, and the function returns -1. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Stable | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
elf(3ELF), elf_begin(3ELF), elf_getdata(3ELF), elf_rawfile(3ELF), libelf(3LIB), attributes(5) NOTES
If the program wishes to use the ``raw'' operations (see elf_rawdata(), which elf_getdata(3ELF) describes, and elf_rawfile(3ELF)) after disabling the file descriptor with ELF_C_FDDONE or ELF_C_FDREAD, it must execute the raw operations explicitly beforehand. Otherwise, the raw file operations will fail. Calling elf_rawfile() makes the entire image available, thus supporting subsequent elf_rawdata() calls. SunOS 5.10 11 Jul 2001 elf_cntl(3ELF)