| ELF_GETSCN(3) | Library Functions Manual | ELF_GETSCN(3) |
elf_getscn,
elf_ndxscn, elf_newscn,
elf_nextscn — get/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
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. 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:
ELF_E_ARGUMENT]ELF_E_ARGUMENT]ELF_E_ARGUMENT]ELF_E_ARGUMENT]ELF_E_CLASS]ELF_E_SECTION]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 |