elf_cntl(3E)

elf_cntl - Controls a file descriptor

As shipped in IRIX 6.5.5. Last changed in IRIX 6.5.5.

NAME
     elf_cntl - Controls a file descriptor

SYNOPSIS
     cc [flag ...] file ...  -lelf [library ...]

     #include <libelf.h>

     int elf_cntl(Elf *elf, Elf_Cmd cmd);

IMPLEMENTATION
     IRIX systems

DESCRIPTION
     elf_cntl instructs the library to modify its behavior with respect to
     an ELF descriptor, elf.  As elf_begin(3E) 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 to not use the file
                       descriptor associated with elf.  Use this command
                       when your program has requested all the information
                       it needs and you want 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 that
                       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 zero.  Otherwise elf was null or an
     error occurred, and the function returns -1.

NOTES
     If the program wants to use the ``raw'' operations [see elf_rawdata,
     which elf_getdata(3E) describes, and elf_rawfile(3E)] 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.

SEE ALSO
     elf(3E), elf_begin(3E), elf_getdata(3E), elf_rawfile(3E)

     This man page is available only online.