elf_getscn(3E) DG/UX R4.11MU05 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.
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).
Licensed material--property of copyright holder(s)