Like most standard library functions our functions should return
``0'' on success and a negative number (preferably
``-1'') on failure. Positve numbers are reserved for
specific return values. Of course this rule is to be broken in
many cases like:
The return value is not of integer type.
(If the return value is a pointer, NULL would be good
to signal failure.)
Negative numbers have to signal other stuff than error.