Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_begin(3E)

elf_flag(3E)

elf_getdata(3E)

elf_getehdr(3E)

elf_getshdr(3E)



elf_getscn(3E)    MISC. REFERENCE MANUAL PAGES     elf_getscn(3E)



NAME
     elf_getscn, elf_ndxscn, elf_newscn, elf_nextscn -  get  sec-
     tion information

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

     #include <libelf.h>

     Elf_Scn *elf_getscn(Elf *elf, size_t index);
     size_t elf_ndxscn(Elf_Scn *scn);

     Elf_Scn *elf_newscn(Elf *elf);
     Elf_Scn *elf_nextscn(Elf *elf, Elf_Scn *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 creat-
     ing  the  file's  ELF  header  before creating sections; see
     elf_getehdr(3E).  elf_getscn 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 (SHN_UNDEF, 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, elf_getscn returns a null pointer.  elf_newscn
     creates a new section and appends it to the  list  for  elf.
     Because   the   SHN_UNDEF   section   is  required  and  not
     ``interesting'' to  applications,  the  library  creates  it
     automatically.  Thus the first call to elf_newscn for an ELF
     descriptor with no existing sections  returns  a  descriptor
     for  section  1.   If  an  error  occurs  or  elf  is  null,
     elf_newscn returns a null pointer.   After  creating  a  new
     section  descriptor,  the  program  can  use  elf_getshdr to
     retrieve the newly created, ``clean'' section  header.   The
     new  section  descriptor  will  have no associated data [see
     elf_getdata(3E)].  When creating a new section in this  way,
     the library updates the e_shnum member of the ELF header and
     sets the ELF_F_DIRTY bit for the section [see elf_flag(3E)].
     If the program is building a new file, it is responsible for
     creating the file's ELF header [see elf_getehdr(3E)]  before
     creating  new  sections.  elf_nextscn takes an existing sec-
     tion 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 SHN_UNDEF).  If no further
     sections are present or an error occurs, elf_nextscn returns
     a  null  pointer.   elf_ndxscn  takes  an  existing  section
     descriptor, scn, and returns its section  table  index.   If
     scn   is   null  or  an  error  occurs,  elf_ndxscn  returns



                    Last change: ELF Library                    1





elf_getscn(3E)    MISC. REFERENCE MANUAL PAGES     elf_getscn(3E)



     SHN_UNDEF.

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 = elf_nextscn(elf, scn)) != 0)
          {
                  /* process section */
          }

SEE ALSO
     elf(3E), elf_begin(3E), elf_flag(3E), elf_getdata(3E),
     elf_getehdr(3E), elf_getshdr(3E).








































                    Last change: ELF Library                    2



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