FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

elf32_getphdr, elf64_getphdr, gelf_getphdr - retrieve an ELF program



      elf32_getphdr, elf64_getphdr, gelf_getphdr - retrieve an ELF program
      header table


      library “libelf”


      #include <libelf.h>
      Elf32_Phdr *
      elf32_getphdr(Elf *elf);
      Elf64_Phdr *
      elf64_getphdr(Elf *elf);
      #include <gelf.h>
      GElf_Phdr *
      gelf_getphdr(Elf *elf, int index, GElf_Phdr *dst);


      These functions retrieve and translate ELF program header information
      from an ELF descriptor, if this information exists.
      Functions elf32_getphdr() and elf64_getphdr() return a pointer to an
      array of translated Elf32_Phdr and Elf64_Phdr descriptors respectively.
      These descriptors are described in elf(5).  The number of entries in this
      array is specified by the e_phnum field of the executable header for ELF
      descriptor elf.
      Function gelf_getphdr() will retrieve the program header table entry at
      index index from ELF descriptor elf. The translated program header table
      entry will be written to the address pointed to be argument dst.
      Applications may inform the library of modifications to a program header
      table entry by using the elf_flagphdr(3) API.  Applications using the
      gelf(3) interface need to use the gelf_update_phdr(3) API to copy modifi‐
      cations to a program header entry back to the underlying ELF descriptor.
      The functions a valid pointer if successful, or NULL in case an error was


      These functions may fail with the following errors:
      [ELF_E_ARGUMENT]  Argument elf was NULL.
      [ELF_E_ARGUMENT]  Argument elf was not a descriptor for an ELF object.
      [ELF_E_ARGUMENT]  Argument dst was NULL.
      [ELF_E_ARGUMENT]  Index index was out of range.
      [ELF_E_CLASS]     The class of ELF descriptor elf did not match the
                        expected class of the function being called.
      [ELF_E_HEADER]    ELF descriptor elf did not possess an executable
      [ELF_E_HEADER]    ELF descriptor elf had a corrupt executable header.
      [ELF_E_RESOURCE]  An out of memory condition was detected.
      [ELF_E_SECTION]   The ELF descriptor in argument elf did not adhere to
                        the conventions used for extended numbering.
      [ELF_VERSION]     ELF descriptor elf was of an unsupported version.
      elf(3), elf32_getehdr(3), elf32_newphdr(3), elf64_getehdr(3),
      elf64_newphdr(3), elf_flagphdr(3), gelf(3), gelf_getehdr(3),
      gelf_newphdr(3), gelf_update_phdr(3), elf(5)


Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.