PERROR(3) Library Functions Manual PERROR(3)

perrorwrite error messages to standard error

#include <stdio.h>

void perror(const char *s);

[CX] 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 IEEE Std 1003.1-2001 (“POSIX.1”) defers to the ISO C standard.

The perror () function shall map the error number accessed through the symbol errno to a language-dependent error message, which shall be written to the standard error stream as follows:

  • First (if s is not a null pointer and the character pointed to by s is not the null byte), the string pointed to by s followed by a colon and a <space>.
  • Then an error message string followed by a <newline>.

The contents of the error message strings shall be the same as those returned by strerror(3) with argument errno.

[CX] The perror () function shall mark the file associated with the standard error stream as having been written ( , marked for update) at some time between its successful completion and exit(3), abort(3), or the completion of fflush(3) or fclose(3) on .

The perror () function shall not change the orientation of the standard error stream.

The perror () function shall not return a value.

No errors are defined.

The following example replaces with a buffer that is the necessary size. If an error occurs, the perror () function prints a message and the program exits.

#include <stdio.h>
#include <stdlib.h>
...
char *bufptr;
size_t szbuf;
...
if ((bufptr = malloc(szbuf)) == NULL) {
    perror("malloc"); exit(2);
}
...

None.

None.

None.

strerror(3) , the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <stdio.h>

First released in Issue 1. Derived from Issue 1 of the SVID.

A paragraph is added to the DESCRIPTION indicating that perror () does not change the orientation of the standard error stream.

Extensions beyond the ISO C standard are marked.

footer end

December 6, 2001 posix.fail