---
name: "elf32_getshdr"
section: "3"
platform: "linux"
package: "libelf"
version: "0.197-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/elf32_getshdr"
---

# elf32\_getshdr(3)

retrieve the section header for a section in 32-bit or 64-bit ELF object file

## NAME

elf32\_getshdr, elf64\_getshdr - retrieve the section header for a section in 32-bit or 64-bit ELF object file

## SYNOPSIS

```
#include <libelf.h>
Elf32_Shdr *elf32_getshdr(Elf_Scn *scn);
Elf64_Shdr *elf64_getshdr(Elf_Scn *scn);
```

## DESCRIPTION

Retrieve the section header for the section referred to by *scn*. If the retrieved section header is modified, **elf\_flagshdr** must be called with **ELF\_C\_SET** and **ELF\_F\_DIRTY** in order to write the modified section header to disk.

## PARAMETERS

- *scn*

  The section descriptor whose section header is to be retrieved.

## RETURN VALUE

On success, return a pointer to the section header.  If scn is NULL then NULL will be returned.  If an error occurs, return NULL and set a libelf error code.

## SEE ALSO

[**elf\_errno**(3)](/elf_errno/3.md), [**elf\_flagshdr**(3)](/elf_flagshdr/3.md), [**libelf**(3)](/libelf/3.md), [**elf**(5)](/elf/5.md)

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **elf32\_getshdr**(), **elf64\_getshdr**() | Thread safety | MT-Safe |

## REPORTING BUGS

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