Freigeben über


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_errlistzugegriffen, 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_errlistund _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