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 archive 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 section, 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(7) 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(7)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.
July 11, 2001
ELF_CNTL(3ELF)