ELF_FSIZE(3E) ELF_FSIZE(3E)
elf_fsize: elf32_fsize elf64_fsize - return the size of an object file
type
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);
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 File Size Memory Size
_____________________________________________________
ELF_T_ADDR | ELF32_FSZ_ADDR | sizeof(Elf32_Addr)
ELF_T_BYTE | 1 | sizeof(unsigned char)
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 64-bit class works identically, simply replacing all instances of 32
in the description and table with 64.
elf(3E), elf_version(3E), elf_xlate(3E).
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 app 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.
Page 1
ELF_FSIZE(3E) ELF_FSIZE(3E)
Applications which 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.
PPPPaaaaggggeeee 2222 [ Back ]
|