ELF Library Functions elfgetscn(3ELF)
NAME
elfgetscn, elfndxscn, elfnewscn, elfnextscn - get sec-
tion information
SYNOPSIS
cc [ flag ... ] file ... -lelf [ library ... ]
#include
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 pro-
gram is building a new file, it is responsible for creating
the file's ELF header before creating sections; see
elf32getehdr(3ELF).
The elfgetscn() function returns a section descriptor,
given an index into the file's section header table. Note
that the first ``real'' section has an index of 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 NUL, elfgetscn() returns a null pointer.
The elfnewscn() function 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 NUL, elfnewscn() returns a null pointer.
After creating a new section descriptor, the program can use
elf32getshdr() to retrieve the newly created, ``clean''
section header. The new section descriptor will have no
associated data (see elfgetdata(3ELF)). When creating a new
section in this way, the library updates the eshnum member
SunOS 5.11 Last change: 11 Jul 2001 1
ELF Library Functions elfgetscn(3ELF)
of the ELF header and sets the ELFDIRTY bit for the sec-
tion (see elfflagdata(3ELF)). If the program is building a
new file, it is responsible for creating the file's ELF
header (see elf32getehdr(3ELF)) before creating new sec-
tions.
The elfnextscn() function 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 sec-
tion descriptor for the section whose index is 1 (skipping
the section whose index is SHNUNDEF). If no further sec-
tions are present or an error occurs, elfnextscn() returns
a null pointer.
The elfndxscn() function takes an existing section descrip-
tor, scn, and returns its section table index. If scn is
null or an error occurs, elfndxscn() returns SHNUNDEF.
EXAMPLES
Example 1 A sample of calling elfgetscn() function.
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 */
}
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
SunOS 5.11 Last change: 11 Jul 2001 2
ELF Library Functions elfgetscn(3ELF)
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Stable
MT-Level MT-Safe
SEE ALSO
elf(3ELF), elf32getehdr(3ELF), elf32getshdr(3ELF),
elfbegin(3ELF), elfflagdata(3ELF), elfgetdata(3ELF),
libelf(3LIB), attributes(5)
SunOS 5.11 Last change: 11 Jul 2001 3
|