Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_getscn(3E) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_getscn(3E)                                               elf_getscn(3E)

NAME
     elfgetscn, elfndxscn, elfnewscn, elfnextscn - get section informa-
     tion

DESCRIPTION
     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 (skip-
     ping the section whose index is SHNUNDEF). If no further sections are
     present or an error occurs, elfnextscn() returns a null pointer.



Page 1                       Reliant UNIX 5.44                Printed 11/98

elf_getscn(3E)                                               elf_getscn(3E)

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

EXAMPLES
     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                       Reliant UNIX 5.44                Printed 11/98

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