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
file hold identification information common
to all file classes.
header's e_ident has EI_NIDENT bytes
with the following interpretation.
Vendor extension identification
Vendor extension version
Unused, set to zero
Other kinds of files [see
also may have identification data, though they would not
conform to e_ident.
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.
is non-null, the library
stores the number of identification bytes in the location to which
If no data is present,
is null, or an error occurs,
the return value is a null pointer,
with zero optionally stored through