ELF_GETSHDRNUM(3)

NAME
elf_getshdrnum, elf_getshnum - retrieve the number of section headers in an ELF file

SYNOPSIS
#include <libelf.h>

int elf_getshdrnum("Elf *elf", size_t *dst );
int elf_getshnum("Elf *elf", size_t *dst ); (deprecated)

DESCRIPTION
The elf_getshdrnum() function stores the number of section headers (sections) associated with the ELF descriptor elf into the variable pointed to by dst.

It transparently handles both standard and extended section header counts. If the number of section headers exceeds the representable range of the e_shnum field in the ELF header, the ELF specification allows encoding the true count in section header 0’s sh_size field, and sets e_shnum to 0. This function transparently handles that case.

The function elf_getshnum() is a deprecated alias for elf_getshdrnum() and should not be used in new code (see HISTORY).

PARAMETERS

elf A pointer to an Elf descriptor opened with elf_begin(3). The descriptor must represent a file of kind ELF_K_ELF . If NULL, the function returns -1 without setting elf_errno.

dst Pointer to a size_t variable. On success, the number of section headers is written here. Must not be NULL.

RETURN VALUE
Returns 0 on success and stores the result in dst. Returns -1 on failure.

SEE ALSO
elf32_getshdr(3), elf64_getshdr(3), libelf(3), elf(5)

ATTRIBUTES
Interface | Attribute | Value
 | Thread safety | MT-Safe

REPORTING BUGS
Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.

HISTORY
elf_getshdrnum first appeared in elfutils 0.142. This function was added due to elf_getshnum return value inconsistencies between different libelf implementations. elf_getshdrnum was introduced to ensure that 0 is returned on success across all libelf implementations.