perror
, _wperror
Druckt eine Fehlermeldung.
Syntax
void perror(
const char *message
);
void _wperror(
const wchar_t *message
);
Parameter
message
Zu druckende Zeichenfolgennachricht.
Hinweise
Die perror
-Funktion druckt eine Fehlermeldung für stderr
. _wperror
ist eine Breitzeichenversion von _perror
. Das message
-Argument für _wperror
ist eine Breitzeichenfolge. _wperror
und _perror
verhalten sich andernfalls identisch.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
TCHAR.H-Routine | _UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
message
wird zuerst gedruckt, gefolgt von einem Doppelpunkt und dann von einer Systemfehlermeldung für den letzten Bibliotheksaufruf, der den Fehler verursacht hat, und schließlich von einem Zeilenumbruchzeichen. Wenn message
ein NULL-Zeiger oder ein Zeiger auf eine NULL-Zeichenfolge ist, druckt perror
nur die System-Fehlermeldung.
Die Fehlernummer wird in der Variablen errno
gespeichert (definiert in ERRNO. H). Auf die Systemfehlermeldungen wird über die Variable _sys_errlist
zugegriffen, bei der es sich um ein Array von Nachrichten handelt, die nach Fehlernummer sortiert sind. perror
druckt die entsprechende Fehlermeldung, indem der errno
-Wert als Index zu _sys_errlist
verwendet wird. Der Wert der Variablen _sys_nerr
wird als maximale Anzahl von Elementen im _sys_errlist
Array definiert.
Rufen Sie perror
bei genauen Ergebnissen unmittelbar nach einer Bibliotheksroutine einen Fehler zurück. Andernfalls können nachfolgende Aufrufe den errno
-Wert überschreiben.
Im Windows-Betriebssystem werden einige errno
-Werte, die in ERRNO.H aufgelistet sind, nicht verwendet. Diese Werte sind für die Verwendung des UNIX-Betriebssystems reserviert. Siehe errno
, , _doserrno
, _sys_errlist
und _sys_nerr
eine Auflistung von errno
Werten, die vom Windows-Betriebssystem verwendet werden. perror
druckt eine leere Zeichenfolge für jeden errno
-Wert, der nicht von diesen Plattformen verwendet wird.
Anforderungen
Routine | Erforderlicher Header |
---|---|
perror |
<stdio.h> oder <stdlib.h> |
_wperror |
<stdio.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Alle Versionen der C-Laufzeitbibliotheken.
Beispiel
// crt_perror.c
// compile with: /W3
/* This program attempts to open a file named
* NOSUCHF.ILE. Because this file probably doesn't exist,
* an error message is displayed. The same message is
* created using perror, strerror, and _strerror.
*/
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <share.h>
int main( void )
{
int fh;
if( _sopen_s( &fh, "NOSUCHF.ILE", _O_RDONLY, _SH_DENYNO, 0 ) != 0 )
{
/* Three ways to create error message: */
perror( "perror says open failed" );
printf( "strerror says open failed: %s\n",
strerror( errno ) ); // C4996
printf( _strerror( "_strerror says open failed" ) ); // C4996
// Note: strerror and _strerror are deprecated; consider
// using strerror_s and _strerror_s instead.
}
else
{
printf( "open succeeded on input file\n" );
_close( fh );
}
}
perror says open failed: No such file or directory
strerror says open failed: No such file or directory
_strerror says open failed: No such file or directory
Siehe auch
Prozess- und Umgebungskontrolle
clearerr
ferror
strerror
, , _strerror
_wcserror
__wcserror