HP-UX Reference (11i v1 00/12) - 3 Library Functions A-M (vol 6)
__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man3/!!!intro.3c
________________________________________________________________
___ ___
e
elf_getscn(3E) elf_getscn(3E)
NAME
elf_getscn, elf_ndxscn, elf_newscn, elf_nextscn - get section 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 creating 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 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 (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 SHN_UNDEF.
EXAMPLES
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).
Section 3−−192 − 1 − HP-UX Release 11i: December 2000
___
___