OpenBSD manual page server

Manual Page Search Parameters

ELF_GETSCN(3) Library Functions Manual ELF_GETSCN(3)

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

library “libelf”

#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);

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

Function () 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 () returns the section table index associated with section descriptor scn.

Function () 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 () takes a section descriptor scn and returns a pointer to the section descriptor at the next higher index. As a consequence, elf_nextscn() will never return a pointer to the empty section at index zero (SHN_UNDEF). 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.

elf(3), elf_flagdata(3), elf_flagscn(3), elf_getdata(3), elf_getshdr(3), gelf(3)

September 24, 2018 OpenBSD-7.6