perror(3C)perror(3C)NAMEperror(), strerror(), strerror_r() - write system error messages
writes a language-dependent message to the standard error output,
describing the last error encountered during a call to a system or
library function. The argument string s is printed first, followed by
a colon, a blank, the message, and a newline character. To be most
useful, the argument string should include the name of the program that
incurred the error. The error number is taken from the symbol which is
set when errors occur but not cleared when non-erroneous calls are
made. The contents of the message is identical to those returned by
the function with as the argument. If given a NULL string, the func‐
tion prints only the message and a newline character.
To simplify variant formatting of messages, the function and the array
of message strings are provided. The function maps the error number in
errnum to a language-dependent error message string and returns a
pointer to the string. The message string is returned without a new‐
line character. can be used as an index into to get an untranslated
message string without the newline character. is the largest message
number provided for in the table; it should be checked because new
error codes might be added to the system before they are added to the
table. must be used to retrieve messages when translations are
The function maps the error number in errnum to a locale-dependent
error message string and returns the string in the buffer pointed to by
buffer, which has length buflen.
The language of the message returned by and printed by is specified by
the environment variable. If the language-dependent message is not
available, or if is not set or is set to the empty string, the default
version of the message associated with the "C" language (see lang(5))
International Code Set Support
Single and multi-byte character code sets are supported.
returns no value.
If the errnum message number is valid, returns a pointer to a language-
dependent message string. The array pointed to should not be modified
by the program, and might be overwritten by a subsequent call to the
function. If a valid errnum message number does not have a correspond‐
ing language-dependent message, uses errnum as an index into to get the
message string. If the errnum message number is invalid, returns a
pointer to a NULL string.
Upon successful completion, returns 0. Otherwise, an error number is
returned to indicate the error.
If the function fails, it will return one of the following errors:
The value of errnum is not a valid error number.
Insufficient storage was supplied via
buffer and buflen to contain the generated mes‐
The return value for points to data whose content is overwritten by
subsequent calls to from the same thread.
SEE ALSOerrno(2), lang(5), environ(5), thread_safety(5).