elf_getshdrnum - Man Page

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

InterfaceAttributeValue
elf_getshdrnum(), elf_getshnum()Thread safetyMT-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.

Referenced By

The man page elf_getshnum(3) is an alias of elf_getshdrnum(3).

2025-06-30 Libelf Programmer's Manual