summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man3p/strerror.3p
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/mageia-cauldron/man3p/strerror.3p')
-rw-r--r--upstream/mageia-cauldron/man3p/strerror.3p310
1 files changed, 310 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man3p/strerror.3p b/upstream/mageia-cauldron/man3p/strerror.3p
new file mode 100644
index 00000000..c15777f4
--- /dev/null
+++ b/upstream/mageia-cauldron/man3p/strerror.3p
@@ -0,0 +1,310 @@
+'\" et
+.TH STRERROR "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\"
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.\"
+.SH NAME
+strerror,
+strerror_l,
+strerror_r
+\(em get error message string
+.SH SYNOPSIS
+.LP
+.nf
+#include <string.h>
+.P
+char *strerror(int \fIerrnum\fR);
+char *strerror_l(int \fIerrnum\fR, locale_t \fIlocale\fR);
+int strerror_r(int \fIerrnum\fR, char *\fIstrerrbuf\fR, size_t \fIbuflen\fR);
+.fi
+.SH DESCRIPTION
+For
+\fIstrerror\fR():
+The functionality described on this reference page is aligned with the
+ISO\ C standard. Any conflict between the requirements described here and the
+ISO\ C standard is unintentional. This volume of POSIX.1\(hy2017 defers to the ISO\ C standard.
+.P
+The
+\fIstrerror\fR()
+function shall map the error number in
+.IR errnum
+to a locale-dependent error message string and shall return a pointer
+to it. Typically, the values for
+.IR errnum
+come from
+.IR errno ,
+but
+\fIstrerror\fR()
+shall map any value of type
+.BR int
+to a message.
+.P
+The application shall not modify the string returned.
+The returned string pointer might be invalidated or
+the string content might be overwritten by a subsequent call to
+\fIstrerror\fR(),
+or by a subsequent call to
+\fIstrerror_l\fR()
+in the same thread. The returned pointer and the string content might
+also be invalidated if the calling thread is terminated.
+.P
+The string may be overwritten by a subsequent call to
+\fIstrerror_l\fR()
+in the same thread.
+.P
+The contents of the error message strings returned by
+\fIstrerror\fR()
+should be determined by the setting of the
+.IR LC_MESSAGES
+category in the current locale.
+.P
+The implementation shall behave as if no function defined in this volume of POSIX.1\(hy2017
+calls
+\fIstrerror\fR().
+.P
+The
+\fIstrerror\fR()
+and
+\fIstrerror_l\fR()
+functions shall not change the setting of
+.IR errno
+if successful.
+.P
+Since no return value is reserved to indicate an error of
+\fIstrerror\fR(),
+an application wishing to check for error situations should set
+.IR errno
+to 0, then call
+\fIstrerror\fR(),
+then check
+.IR errno .
+Similarly, since
+\fIstrerror_l\fR()
+is required to return a string for some errors, an application wishing
+to check for all error situations should set
+.IR errno
+to 0, then call
+\fIstrerror_l\fR(),
+then check
+.IR errno .
+.P
+The
+\fIstrerror\fR()
+function need not be thread-safe.
+.P
+The
+\fIstrerror_l\fR()
+function shall map the error number in
+.IR errnum
+to a locale-dependent error message string in the locale represented by
+.IR locale
+and shall return a pointer to it.
+.P
+The
+\fIstrerror_r\fR()
+function shall map the error number in
+.IR errnum
+to a locale-dependent error message string and shall return the string
+in the buffer pointed to by
+.IR strerrbuf ,
+with length
+.IR buflen .
+.P
+If the value of
+.IR errnum
+is a valid error number, the message string shall indicate what error
+occurred; if the value of
+.IR errnum
+is zero, the message string shall either be an empty string or
+indicate that no error occurred; otherwise, if these functions complete
+successfully, the message string shall indicate that an unknown error
+occurred.
+.P
+The behavior is undefined if the
+.IR locale
+argument to
+\fIstrerror_l\fR()
+is the special locale object LC_GLOBAL_LOCALE or is not a valid locale
+object handle.
+.SH "RETURN VALUE"
+Upon completion, whether successful or not,
+\fIstrerror\fR()
+shall return a pointer to the generated message string.
+On error
+.IR errno
+may be set, but no return value is reserved to indicate an error.
+.P
+Upon successful completion,
+\fIstrerror_l\fR()
+shall return a pointer to the generated message string. If
+.IR errnum
+is not a valid error number,
+.IR errno
+may be set to
+.BR [EINVAL] ,
+but a pointer to a message string shall still be returned. If any other
+error occurs,
+.IR errno
+shall be set to indicate the error and a null pointer shall be
+returned.
+.P
+Upon successful completion,
+\fIstrerror_r\fR()
+shall return 0. Otherwise, an error number shall be returned to
+indicate the error.
+.SH ERRORS
+These functions may fail if:
+.TP
+.BR EINVAL
+The value of
+.IR errnum
+is neither a valid error number nor zero.
+.P
+The
+\fIstrerror_r\fR()
+function may fail if:
+.TP
+.BR ERANGE
+Insufficient storage was supplied via
+.IR strerrbuf
+and
+.IR buflen
+to contain the generated message string.
+.LP
+.IR "The following sections are informative."
+.SH EXAMPLES
+None.
+.SH "APPLICATION USAGE"
+Historically in some implementations, calls to
+\fIperror\fR()
+would overwrite the string that the pointer returned by
+\fIstrerror\fR()
+points to. Such implementations did not conform to the ISO\ C standard; however,
+application developers should be aware of this behavior if they wish
+their applications to be portable to such implementations.
+.SH RATIONALE
+The
+\fIstrerror_l\fR()
+function is required to be thread-safe, thereby eliminating the
+need for an equivalent to the
+\fIstrerror_r\fR()
+function.
+.P
+Earlier versions of this standard did not explicitly require that the
+error message strings returned by
+\fIstrerror\fR()
+and
+\fIstrerror_r\fR()
+provide any information about the error. This version of the standard
+requires a meaningful message for any successful completion.
+.P
+Since no return value is reserved to indicate a
+\fIstrerror\fR()
+error, but all calls (whether successful or not) must return a pointer
+to a message string, on error
+\fIstrerror\fR()
+can return a pointer to an empty string or a pointer to a meaningful
+string that can be printed.
+.P
+Note that the
+.BR [EINVAL]
+error condition is a may fail error. If an invalid error number is
+supplied as the value of
+.IR errnum ,
+applications should be prepared to handle any of the following:
+.IP " 1." 4
+Error (with no meaningful message):
+.IR errno
+is set to
+.BR [EINVAL] ,
+the return value is a pointer to an empty string.
+.IP " 2." 4
+Successful completion:
+.IR errno
+is unchanged and the return value points to a string like
+.BR \(dqunknown error\(dq
+or
+.BR \(dqerror number xxx\(dq
+(where
+.IR xxx
+is the value of
+.IR errnum ).
+.IP " 3." 4
+Combination of #1 and #2:
+.IR errno
+is set to
+.BR [EINVAL]
+and the return value points to a string like
+.BR \(dqunknown error\(dq
+or
+.BR \(dqerror number xxx\(dq
+(where
+.IR xxx
+is the value of
+.IR errnum ).
+Since applications frequently use the return value of
+\fIstrerror\fR()
+as an argument to functions like
+\fIfprintf\fR()
+(without checking the return value) and since applications have no way
+to parse an error message string to determine whether
+.IR errnum
+represents a valid error number, implementations are encouraged to
+implement #3. Similarly, implementations are encouraged to have
+\fIstrerror_r\fR()
+return
+.BR [EINVAL]
+and put a string like
+.BR \(dqunknown error\(dq
+or
+.BR \(dqerror number xxx\(dq
+in the buffer pointed to by
+.IR strerrbuf
+when the value of
+.IR errnum
+is not a valid error number.
+.P
+Some applications rely on being able to set
+.IR errno
+to 0 before calling a function with no reserved value to indicate an
+error, then call
+.IR strerror ( errno )
+afterwards to detect whether an error occurred (because
+.IR errno
+changed) or to indicate success (because
+.IR errno
+remained zero). This usage pattern requires that
+.IR strerror (0)
+succeed with useful results. Previous versions of the standard did not
+specify the behavior when
+.IR errnum
+is zero.
+.SH "FUTURE DIRECTIONS"
+None.
+.SH "SEE ALSO"
+.IR "\fIperror\fR\^(\|)"
+.P
+The Base Definitions volume of POSIX.1\(hy2017,
+.IR "\fB<string.h>\fP"
+.\"
+.SH 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 .
+.PP
+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 .