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