ERRNO(3POSIX)
πΈ ERRNO β the POSIX Programmer's Manual, bestie edition πΈ
okay so hi, this is the page for errno(3POSIX) from the POSIX Programmer's Manual, and we're gonna get into it π
π«Ά PROLOG
Real talk first: this manual page is part of the POSIX Programmer's Manual. Heads up tho β the Linux implementation of this interface may differ (so pls consult the corresponding Linux manual page for the deets on Linux behavior), or honestly the interface may not even be implemented on Linux. Not me warning you before you even start π
β¨ NAME
errno β error return value. that's the whole vibe, that's the icon.
π SYNOPSIS
#include <errno.h>
π DESCRIPTION
The lvalue errno is used by many functions to return error values. she's booked and busy.
Many functions provide an error number in errno, which has type int and is defined in <errno.h>. The value of errno shall be defined only after a call to a function for which it is explicitly stated to be set, and until it is changed by the next function call, or if the application assigns it a value. so like, don't just go reading her whenever, she's not always telling the truth.
The value of errno should only be examined when it is indicated to be valid by a function's return value. periodt.
Applications shall obtain the definition of errno by the inclusion of <errno.h>. No function in this volume of POSIX.1β2017 shall set errno to 0. The setting of errno after a successful call to a function is unspecified unless the description of that function specifies that errno shall not be modified. yes this is the plot twist, it's giving "unspecified behavior" energy π
It is unspecified whether errno is a macro or an identifier declared with external linkage. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name errno, the behavior is undefined. π do not do this. i'm serious.
The symbolic values stored in errno are documented in the ERRORS sections on all relevant pages. so if you wanna know what a specific number means, go read that page's ERRORS section, k?
π RETURN VALUE
None. that's it. nothing. void. she's not that kind of girl π
π¦ ERRORS
None.
The following sections are informative. (iykyk β informative means "for your enrichment, not a rule")
π EXAMPLES
None. tragic, i know π
π APPLICATION USAGE
Back in the day, both POSIX and X/Open documents were more restrictive than the ISO C standard, in that they required errno to be defined as an external variable β whereas the ISO C standard required only that errno be defined as a modifiable lvalue with type int. lowkey a glow-up moment for flexibility.
An application that needs to examine the value of errno to determine the error should set it to 0 before a function call, then inspect it before a subsequent function call. that's the move. write it down π
π RATIONALE
None.
β FUTURE DIRECTIONS
None.
π₯ SEE ALSO
- Section 2.3, Error Numbers
- The Base Definitions volume of POSIX.1β2017,
<errno.h>
π§ COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .
Any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. To report such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .
bestie if you spot a typo it's probably the man page conversion's fault, not ours, ok? go report it at that link π«Ά
and that's the page!! brought to you by IEEE/The Open Group, 2017 β ERRNO(3POSIX), mwah π stay safe out there and always check your errno before the next function call πΈβ¨
π¦ where this page comes from
- debian bookworm: manpages-posix-dev 2017a-2 Β· Other
- debian trixie: manpages-posix-dev 2017a-2 Β· Other
- ubuntu jammy: manpages-posix-dev 2017a-2 Β· Other
- ubuntu noble: manpages-posix-dev 2017a-2 Β· Other
- ubuntu resolute: manpages-posix-dev 2017a-2build1 Β· Other
- ubuntu stonking: manpages-posix-dev 2017a-2.1 Β· Other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms