Amiga Unix — 68040 · 68060

Manual pages › Libraries: curses, OPEN LOOK and others (3)

elf_getident(3)

retrieve file identification data

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

elf_getident - retrieve file identification data

SYNOPSIS

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

#include <libelf.h>

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

DESCRIPTION

As elf(3E) explains, ELF provides a  framework  for  various
classes  of  files, where basic objects may have 32 bits, 64
bits, etc.  To accommodate these differences, without  forc-
ing  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     |
     EI_MAG1      |  ELFMAG1     |  File identification
     EI_MAG2      |  ELFMAG2     |
     EI_MAG3      |  ELFMAG3     |
     _____________|______________|_____________________
                  |  ELFCLASSNONE|
     EI_CLASS     |  ELFCLASS32  |  File class
     _____________|______________|_____________________
                  |  ELFDATANONE |
     EI_DATA      |  ELFDATA2LSB |  Data encoding
                  |  ELFDATA2MSB |
     _____________|______________|_____________________
     EI_VERSION   |  EV_CURRENT  |  File version
     _____________|______________|_____________________
     _____________|______________|__Unused,_set_to_zero
Other kinds of files [see elf_kind(3E)] also may have  iden-
tification  data,  though they would not conform to e_ident.
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 not to 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).