ELF_GETSCN(3ELF)            ELF Library Functions           ELF_GETSCN(3ELF)
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 
elf32_getehdr(3ELF).
       The 
elf_getscn() 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 (
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.
       The 
elf_newscn() function 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       
elf32_getshdr() to retrieve the newly created, ``clean'' section
       header.  The new section descriptor will have no associated data (see       
elf_getdata(3ELF)). 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_flagdata(3ELF)). If the
       program is building a new file, it is responsible for creating the
       file's 
ELF header (see 
elf32_getehdr(3ELF)) before creating new
       sections.
       The 
elf_nextscn() 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 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.
       The 
elf_ndxscn() function 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
       Example 1: A sample of calling elf_getscn() 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 = elf_nextscn(elf, scn)) != 0)         {              /* process section */         }ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Stable          |
       +--------------------+-----------------+
       |MT-Level            | MT-Safe         |
       +--------------------+-----------------+
SEE ALSO
       elf(3ELF), 
elf32_getehdr(3ELF), 
elf32_getshdr(3ELF), 
elf_begin(3ELF),       
elf_flagdata(3ELF), 
elf_getdata(3ELF), 
libelf(3LIB), 
attributes(7)                                July 11, 2001               ELF_GETSCN(3ELF)