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_newphdr, elf64_newphdr, gelf_newphdr - allocate an ELF program



      elf32_newphdr, elf64_newphdr, gelf_newphdr - allocate an ELF program
      header table


      library “libelf”


      #include <libelf.h>
      Elf32_Phdr *
      elf32_newphdr(Elf *elf, size_t count);
      Elf64_Phdr *
      elf64_newphdr(Elf *elf, size_t count);
      #include <gelf.h>
      void *
      gelf_newphdr(Elf *elf, size_t count);


      These functions allocate an ELF Program Header table for an ELF descrip‐
      tor.  Elf32_Phdr and Elf64_Phdr descriptors are described further in
      Functions elf32_newphdr() and elf64_newphdr() allocate a table of count
      Elf32_Phdr and Elf64_Phdr descriptors respectively, discarding any exist‐
      ing program header table already present in the ELF descriptor elf.  A
      value of zero for argument count may be used to delete an existing pro‐
      gram header table from an ELF descriptor.
      Function gelf_newphdr() will return a table of Elf32_Phdr or Elf64_Phdr
      with count elements depending on the ELF class of ELF descriptor elf.
      The functions set the e_phnum field of the executable header for ELF
      descriptor elf to count, and also set the ELF_F_DIRTY bit on the program
      header table.  All members of the returned array of Phdr structures will
      be initialized to zero.
      After a successful call to these functions, the pointer returned by a
      prior call to elf32_getphdr() or elf64_getphdr() on the same descriptor
      elf will no longer be valid.
      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_CLASS]     ELF descriptor elf was of an unrecognized class.
      [ELF_E_RESOURCE]  An out of memory condition was detected.
      [ELF_E_SEQUENCE]  An executable header was not allocated for ELF descrip‐
                        tor elf before using these APIs.
      elf(3), elf32_getphdr(3), elf32_newehdr(3), elf64_getphdr(3),
      elf64_newehdr(3), elf_flagphdr(3), gelf(3), gelf_getphdr(3),
      gelf_newehdr(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.