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