(com_err.info)Error codes


Next: Error table source file Prev: Why com_err? Up: Top
Enter node , (file) or (file)node

2 Error codes
*************

Error codes themselves are 32 bit (signed) integers, of which the high
order 24 bits are an identifier of which error table the error code is
from, and the low order 8 bits are a sequential error number within the
table.  An error code may thus be easily decomposed into its component
parts.  Only the lowest 32 bits of an error code are considered
significant on systems which support wider values.

   Error table 0 is defined to match the UNIX system call error table
('sys_errlist'); this allows 'errno' values to be used directly in the
library (assuming that 'errno' is of a type with the same width as
long).  Other error table numbers are formed by compacting together the
first four characters of the error table name.  The mapping between
characters in the name and numeric values in the error code are defined
in a system-independent fashion, so that two systems that can pass
integral values between them can reliably pass error codes without loss
of meaning; this should work even if the character sets used are not the
same.  (However, if this is to be done, error table 0 should be avoided,
since the local system call error tables may differ.)

   Any variable which is to contain an error code should be declared
long.  The draft proposed American National Standard for C (as of May,
1988) requires that long variables be at least 32 bits; any system which
does not support 32-bit long values cannot make use of this package (nor
much other software that assumes an ANSI-C environment base) without
significant effort.


automatically generated by info2www version 1.2.2.9