ELF_GETIDENT(3E)ELF_GETIDENT(3E)


NAME
     elf_getident - Retrieves file identification data

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

     #include <libelf.h>

     char *elf_getident(Elf *elf, size_t *ptr);

DESCRIPTION
     ELF provides a framework for various classes of files, where basic
     objects may have 32 bits, 64 bits, etc.  To accommodate these
     differences without forcing the larger sizes on smaller machines, the
     initial bytes in an ELF file hold identification information common to
     all file classes.  Every ELF header's e_ident has EI_NIDENT bytes with
     the following interpretation:

 --------------------------------------------------------------------------
      e_ident Index


Value


Purpose


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


 EI_MAG0

ELFMAG0

Fileidentification


 EI_MAG1

ELFMAG1


 EI_MAG2

ELFMAG2


 EI_MAG3

ELFMAG3


 EI_CLASS

ELFCLASSNONE

Fileclass


ELFCLASS32


ELFCLASS64


 EI_DATA

ELFDATANONE

Dataencoding


ELFDATA2LSB


ELFDATA2MSB


 EI_VERSION

EV_CURRENT

Fileversion


 7-15

0

Unused,settozero


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

     Other kinds of files also may have identification data, though they
     would not conform to e_ident.  See elf_kind(3E) for details.

     elf_getident returns a pointer to the file's initial bytes.  If the
     library recognizes the file, a conversion from the file image to the
     memory image may occur.  In any case, the identification bytes are
     guaranteed to not have been modified, though the size of the
     unmodified area depends on the file type.  If ptr is non-null, the
     library stores the number of identification bytes in the location to
     which ptr points.  If no data are present, elf is null, or an error
     occurs, the return value is a null pointer, with zero optionally
     stored through ptr.

SEE ALSO
     elf(3E), elf_begin(3E), elf_getehdr(3E), elf_kind(3E), elf_rawfile(3E)