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).