elf_getident(3E) elf_getident(3E)
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, and so forth. 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 |
EI_MAG1 | ELFMAG1 |
EI_MAG2 | ELFMAG2 | File identification
EI_MAG3 | ELFMAG3 |
_____________|______________|_____________________
| ELFCLASSNONE|
EI_CLASS | ELFCLASS32 | File class
| ELFCLASS64 |
_____________|______________|_____________________
| ELFDATANONE |
EI_DATA | ELFDATA2LSB | Data encoding
| ELFDATA2MSB |
_____________|______________|_____________________
EI_VERSION | EV_CURRENT | File version
_____________|______________|_____________________
7-15 | 0 | Unused, set to zero
_____________|______________|_____________________
Other kinds of files [see elf_kind(3E)] also may have
identification 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
Copyright 1994 Novell, Inc. Page 1
elf_getident(3E) elf_getident(3E)
number of identification bytes in the location to which ptr
points. If no data is present, elf is null, or an error
occurs, the return value is a null pointer, with zero
optionally stored through ptr.
REFERENCES
elf(3E), elf_begin(3E), elf_getehdr(3E), elf_kind(3E),
elf_rawfile(3E)
Copyright 1994 Novell, Inc. Page 2