DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

elf_getident(S)


elf_getident -- retrieve file identification data

Syntax

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

#include <libelf.h>

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

Description

As elf(S) 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 File identification
EI_MAG1 ELFMAG1  
EI_MAG2 ELFMAG2  
EI_MAG3 ELFMAG3  
EI_CLASS ELFCLASSNONE File class
  ELFCLASS32  
  ELFCLASS64  
EI_DATA ELFDATANONE Data encoding
  ELFDATA2LSB  
  ELFDATA2MSB  
EI_VERSION EV_CURRENT File version
7-15 0 Unused, set to zero

 e_ident     |               |
 Index       | Value         | Purpose
 EI_MAG0     | ELFMAG0       | File identification
 EI_MAG1     | ELFMAG1       |
 EI_MAG2     | ELFMAG2       |
 EI_MAG3     | ELFMAG3       |
 EI_CLASS    | ELFCLASSNONE  | File class
             | ELFCLASS32    |
             | ELFCLASS64    |
 EI_DATA     | ELFDATANONE   | Data encoding
             | ELFDATA2LSB   |
             | ELFDATA2MSB   |
 EI_VERSION  | EV_CURRENT    | File version
 7-15        | 0             | Unused, set to zero

Other kinds of files (see elf_kind(S) may also have identification data, though they would not conform to e_ident.

elf_getident(S) 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 be unchanged, 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 that ptr points to. 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.

Diagnostics

Error conditions are identified through the routine elf_error(S).

See also

elf(S), elf_begin(S), elf_getehdr(S), elf_kind(S), elf_rawfile(S)

Standards conformance

elf_getident(S) is not part of any currently supported standard; it was developed by UNIX System Laboratories, Inc. and is maintained by The SCO Group.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003