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

# gelf\_fsize(3)

calculate the file size of an ELF data structure

## NAME

gelf\_fsize - calculate the file size of an ELF data structure

## SYNOPSIS

```
#include <gelf.h>
size_t gelf_fsize (Elf *elf, Elf_Type type, size_t count, unsigned int version);
```

## DESCRIPTION

Return the number of bytes needed for the on-disk representation of an array of *count* elements with type denoted by *type*. The number of bytes depends on the binary class (**ELFCLASS32** or **ELFCLASS64**) of the given *elf*. The on-disk and in-memory representations of **Elf\_Type** are assumed to be the same. See [**libelf**(3)](/libelf/3.md) for more information regarding **Elf\_Type**.

## PARAMETERS

- *elf*

  The Elf descriptor that determines the binary class used to compute the file size.

- *type*

  The ELF data structure for which the file size is to be calculated.

- *count*

  The number of elements of the specified type.

- *version*

  The ELF version.  This should be set to **EV\_CURRENT**, which is the only valid value.

## RETURN VALUE

The size in bytes of the specified count and type of data structure. If version is not set to **EV\_CURRENT** or *type* is not a valid **Elf\_Type**, then 0 is returned and elf\_errno is set.  Integer overflow can occur if the size of *type* multiplied by *count* is greater than **SIZE\_MAX**.

## SEE ALSO

[**elf32\_fsize**(3)](/elf32_fsize/3.md), [**elf64\_fsize**(3)](/elf64_fsize/3.md), [**libelf**(3)](/libelf/3.md), [**elf**(5)](/elf/5.md)

## ATTRIBUTES

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **gelf\_fsize**() | Thread safety | MT-Safe |

## REPORTING BUGS

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