X-Git-Url: https://pd.if.org/git/?p=pdclib.old;a=blobdiff_plain;f=man3%2Ferrno.3;fp=man3%2Ferrno.3;h=da5464045aea0d80ec341590734b99d36f23336b;hp=0000000000000000000000000000000000000000;hb=c66e7780ad17eb9af82dc61f4e3b44b7f0c890b2;hpb=8ea6754f7b066c496d7c7c68e7695aaec29b253a diff --git a/man3/errno.3 b/man3/errno.3 new file mode 100644 index 0000000..da54640 --- /dev/null +++ b/man3/errno.3 @@ -0,0 +1,66 @@ +.\" This file is part of the Public Domain C Library (PDCLib). +.\" Permission is granted to use, modify, and / or redistribute at will. +.\" +.Dd +.Dt ERRNO 3 +.Os + +.Sh NAME +.Nm errno +.Nd library error result + +.Sh SYNOPSIS +.In errno.h +.Pp +.Sy #define errno +.\" +.Sh DESCRIPTION +The header +.In errno.h +defines the name +.Va errno +to refer to an object of thread local storage duration. It is undefined whether +or not +.Va errno +refers to a preprocessor symbol or not. +.\" +.Pp +At program startup, the runtime shall initialize +.Va errno +to contain the value zero (the initial value in other threads is undefined). It +is guaranteed that no function provided by the C standard library shall set the +value of +.Va errno +to zero; therefore, for functions which do not have a unique return value for +indicating error, it is possible to determine whether an error occured by +setting +.Va errno +to zero before the call, then after the call seeing if an error value has been +stored into +.Va errno. +.Pp +.Bf Sy +Note that it is valid for any function which is not described as explicitly +setting +.Va errno +to set it to a non-zero value. Checking for a non-zero value is only valid with +functions which are defined to modify +.Va errno . +.Ef +.\" +.Pp +In some historical versions of the POSIX standard, the prescribed method of +using errno was to define +.Va extern int errno . +This is no longer supported by the POSIX or C standards, and will not work on +the majority of implementations, including this one. + +.Sh SEE ALSO +.Xr errno.h 3 +.Xr abort 3 +.Xr assert 3 +\" +.Sh STANDARDS +Conforming to +.St -isoC-90 , +.St -isoC-99 . \ No newline at end of file