---
name: "elf64_getphdr"
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_getphdr"
---

# elf64\_getphdr(3)

retrieve the program header table for a 32-bit or 64-bit ELF object file

Part of [elf32\_getphdr(3)](/elf32_getphdr/3.md).

## NAME

elf32\_getphdr, elf64\_getphdr - retrieve the program header table for a 32-bit or 64-bit ELF object file

## SYNOPSIS

```
#include <libelf.h>
Elf32_Phdr *elf32_getphdr(Elf *elf);
Elf64_Phdr *elf64_getphdr(Elf *elf);
```

## DESCRIPTION

Retrieve the program header table for the given ELF descriptor *elf*. The number of elements in the program header table can be retrieved with **elf32\_getphdrnum** and **elf64\_getphdrnum**. **elf32\_newphdr** and **elf64\_newphdr** change the size of the program header table or to delete it. If changing an element of the program header table, you must call elf\_flagphdr with **ELF\_C\_SET** and **ELF\_F\_DIRTY** in order to write the new data to disk.

## PARAMETERS

- *elf*

  ELF descriptor from which to retrieve the program header table.

## RETURN VALUE

On success, return a pointer to the program header table. Return NULL if there is no program header.  On failure, return NULL and set a libelf error code.

## SEE ALSO

[**elf32\_newphdr**(3)](/elf32_newphdr/3.md), [**elf\_errno**(3)](/elf_errno/3.md), [**elf\_getphdrnum**(3)](/elf_getphdrnum/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\_getphdr**(), **elf64\_getphdr**() | Thread safety | MT-Safe |

## REPORTING BUGS

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