ELF_FSIZE(3E)ELF_FSIZE(3E)


NAME
     elf_fsize, elf32_fsizeE, elf64_fsize - Returns the size of an object
     file type

SYNOPSIS
     cc [flag ...] file ...  -lelf [library ...]

     #include <libelf.h>

     size_t elf32_fsize(Elf_Type type, size_t count, unsigned ver);

     size_t elf64_fsize(Elf_Type type, size_t count, unsigned ver);

     #define _LIBELF_XTND_64 Elf64_Xword elf64_fsize(Elf_Type type,
     Elf64_Xword count, unsigned ver);

DESCRIPTION
     elf32_fsize gives the size in bytes of the 32-bit file representation
     of count data objects with the given type.  The library uses version
     ver to calculate the size [see elf(3E) and elf_version(3E)].

     Constant values are available for the sizes of fundamental types.

     --------------------------------------------------------------
       Elf_Type


FileSize


MemorySize


--------------------------------------------------------------


     ELF_T_ADDR

ELF32_FSZ_ADDR

sizeof(Elf32_Addr)


     ELF_T_BYTE

1

sizeof(unsignedchar)


     ELF_T_HALF

ELF32_FSZ_HALF

sizeof(Elf32_Half)


     ELT_T_OFF

ELF32_FSZ_OFF

sizeof(Elf32_Off)


     ELF_T_SWORD

ELF32_FSZ_SWORD

sizeof(Elf32_Sword)


     ELF_T_WORD

ELF32_FSZ_WORD

sizeof(Elf32_Word)


     --------------------------------------------------------------

     elf32_fsize returns zero if the value of type or ver is unknown.  See
     elf_xlate(3E) for a list of the type values.

     The previous description and table also applies to the 64-bit class;
     just replace all instances of 32 with 64.

NOTES
     The use of a size_t in a 32-bit compile with elf64_fsize is
     unfortunate, since that makes it impossible to deal with certain
     object files.  If, when the 32-bit application is compiled,
     _LIBELF_XTND_64 is defined, then the function interface changes to
     have 64-bit fields.  If _LIBELF_XTND_64 is defined at compile-time,
     then instead of linking with -lelf, link with -lelf_xtnd.  There is a
     corresponding -ldwarf_xtnd.  It is essential that a 32-bit application
     compiled with _LIBELF_XTND_64 be entirely compiled with
     _LIBELF_XTND_64 defined.

     Applications that are built as 64-bit applications can ignore
     _LIBELF_XTND_64; it has no effect on them and 64-bit applications
     always link with -lelf, never with -lelf_xtnd.

SEE ALSO
     elf(3E), elf_version(3E), elf_xlate(3E)