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.
Copyright 1994 Novell, Inc. Page 1
elf_getscn(3E) elf_getscn(3E)
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 (skipping 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 */
}
REFERENCES
elf(3E), elf_begin(3E), elf_flag(3E), elf_getdata(3E),
elf_getehdr(3E), elf_getshdr(3E)
Copyright 1994 Novell, Inc. Page 2