Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_getscn(3E) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)



elf_getscn(3E)            UNIX System V(ELF Library)             elf_getscn(3E)


NAME
      elfgetscn, elfndxscn, elfnewscn, elfnextscn - get section information

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

      #include <libelf.h>
      ElfScn *elfgetscn(Elf *elf, sizet index);
      sizet elfndxscn(ElfScn *scn);
      ElfScn *elfnewscn(Elf *elf);
      ElfScn *elfnextscn(Elf *elf, ElfScn *scn);

DESCRIPTION
      These functions provide indexed and sequential access to the sections
      associated with the ELF descriptor elf.  If the program is building a new
      file, it is responsible for creating the file's ELF header before
      creating sections; see elfgetehdr(3E).

      elfgetscn returns a section descriptor, given an index into the file's
      section header table.  Note the first ``real'' section has index 1.
      Although a program can get a section descriptor for the section whose
      index is 0 (SHNUNDEF, the undefined section), the section has no data
      and the section header is ``empty'' (though present).  If the specified
      section does not exist, an error occurs, or elf is null, elfgetscn
      returns a null pointer.

      elfnewscn creates a new section and appends it to the list for elf.
      Because the SHNUNDEF section is required and not ``interesting'' to
      applications, the library creates it automatically.  Thus the first call
      to elfnewscn for an ELF descriptor with no existing sections returns a
      descriptor for section 1.  If an error occurs or elf is null, elfnewscn
      returns a null pointer.

      After creating a new section descriptor, the program can use elfgetshdr
      to retrieve the newly created, ``clean'' section header.  The new section
      descriptor will have no associated data [see elfgetdata(3E)].  When
      creating a new section in this way, the library updates the eshnum
      member of the ELF header and sets the ELFFDIRTY bit for the section
      [see elfflag(3E)].  If the program is building a new file, it is
      responsible for creating the file's ELF header [see elfgetehdr(3E)]
      before creating new sections.

      elfnextscn takes an existing section descriptor, scn, and returns a
      section descriptor for the next higher section.  One may use a null scn
      to obtain a section descriptor for the section whose index is 1 (skipping
      the section whose index is SHNUNDEF).  If no further sections are
      present or an error occurs, elfnextscn returns a null pointer.

      elfndxscn takes an existing section descriptor, scn, and returns its
      section table index.  If scn is null or an error occurs, elfndxscn
      returns SHNUNDEF.



10/89                                                                    Page 1







elf_getscn(3E)            UNIX System V(ELF Library)             elf_getscn(3E)


EXAMPLE
      An example of sequential access appears below.  Each pass through the
      loop processes the next section in the file; the loop terminates when all
      sections have been processed.

           scn = 0;
           while ((scn = elfnextscn(elf, scn)) != 0)
           {
                   /* process section */
           }

SEE ALSO
      elf(3E), elfbegin(3E), elfflag(3E), elfgetdata(3E), elfgetehdr(3E),
      elfgetshdr(3E)








































Page 2                                                                    10/89





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026