elf_getscn(3E) MISC. REFERENCE MANUAL PAGES elf_getscn(3E)
NAME
elfgetscn, elfndxscn, elfnewscn, elfnextscn - get sec-
tion 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 creat-
ing 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 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 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
Last change: ELF Library 1
elf_getscn(3E) MISC. REFERENCE MANUAL PAGES elf_getscn(3E)
SHNUNDEF.
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).
Last change: ELF Library 2