ELF_GETSCN(3) FreeBSD Library Functions Manual ELF_GETSCN(3)


elf_getscn, elf_ndxscn, elf_newscn, elf_nextscnget/allocate section information for an ELF object


ELF Access Library (libelf, -lelf)


#include < libelf.h>

Elf_Scn *
elf_getscn( Elf *elf, size_t index);

elf_ndxscn( Elf_Scn *scn);

Elf_Scn *
elf_newscn( Elf *elf);

Elf_Scn *
elf_nextscn( Elf *elf, Elf_Scn *scn);


These functions are used to iterate through the sections associated with an ELF descriptor.

Function elf_getscn() will return a section descriptor for the section at index index in the object denoted by ELF descriptor elf. An error will be signalled if the specified section does not exist.

Function elf_ndxscn() returns the section table index associated with section descriptor scn.

Function elf_newscn() creates a new section and appends it to the list of sections associated with descriptor elf. The library will automatically increment the e_shnum field of the ELF header associated with descriptor elf, and will set the ELF_F_DIRTY flag on the returned section descriptor. For ELF descriptors opened for writing, the ELF library will automatically create an empty section at index zero ( SHN_UNDEF) on the first call to elf_newscn().

Function elf_nextscn() takes a section descriptor scn and returns a pointer to the section descriptor at the next higher index. Argument scn is allowed to be NULL, in which case this function will return a pointer to the section descriptor at index 1. If no further sections are present, function elf_nextscn() will return a NULL pointer.


Functions elf_getscn(), elf_newscn() and elf_nextscn() return a valid pointer to a section descriptor if successful, or NULL if an error occurs.

Function elf_ndxscn() returns a valid section table index if successful, or SHN_UNDEF if an error occurs.


These functions may fail with the following errors:
Arguments elf or scn were NULL.
Argument index exceeded the current number of sections in the ELF object.
Argument elf was not a descriptor for an ELF file.
Section descriptor scn was not associated with ELF descriptor elf.
Descriptor elf was of an unknown ELF class.
Argument elf specified extended section numbering in the ELF header with the section header at index SHN_UNDEF not being of type SHT_NULL.
October 22, 2007 FreeBSD