Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > E

elf_getscn(3E)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

elf_getscn(), elf_ndxscn(), elf_newscn(), elf_nextscn() — get section information for ELF files

SYNOPSIS

Command: 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 (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 */ }

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.