The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> perror - write error messages to standard error

#### SYNOPSIS

> ``#include <stdio.h>
> void perror(const char *`s`);
> ``

#### DESCRIPTION

> [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 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() with argument errno.

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

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

#### RETURN VALUE

> The perror() function shall not return a value.

#### ERRORS

> No errors are defined.

The following sections are informative.

#### EXAMPLES

> ##### Printing an Error Message for a Function

> The following example replaces bufptr 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);
>     }
>     ...

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> strerror(), the Base Definitions volume of IEEE Std 1003.1-2001, <stdio.h>

#### CHANGE HISTORY

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

#### Issue 5

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

#### Issue 6

> Extensions beyond the ISO C standard are marked.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]