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