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