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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Generische Textroutinzuordnungen
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.
Bibliotheken
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für