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
file hold identification information common to all file classes.
has EI_NIDENT bytes
with the following interpretation.
Unused, set to zero
Other kinds of files (see
may also have identification data, though they would not conform to
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.
the library stores the number of identification bytes in the location that
points to. If no data is present,
is null, or an error occurs, the return value is a null pointer,
with zero optionally stored through
Error conditions are identified through the routine