Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Drucken Sie eine Fehlermeldung.
void perror(
const char *string
);
void _wperror(
const wchar_t *string
);
Parameter
- string
Reihe Sie Meldung auf, um zu drucken.
Hinweise
Die perror-Funktion gibt eine Fehlermeldung zu stderr. _wperror ist eine Breitzeichen-Version von _perror; string das Argument für _wperror ist eine Zeichenfolge mit Breitzeichen. _wperror und _perror identisch verhalten sich andernfalls.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
string wird zuerst ausgegeben, gefolgt von einem Doppelpunkt, dann der Systemfehlermeldung für den letzten Bibliotheksaufruf, der den Fehler hat, und schließlich von einem Zeilenumbruchzeichen. Wenn string ein NULL-Zeiger oder ein Zeiger auf eine NULL-Zeichenfolge ist, gibt perror nur die Systemfehlermeldung.
Die Fehlernummer wird in der Variablen errno gespeichert (in ERRNO.H). Über die Variable _sys_errlist wird auf die Systemfehlermeldungen zugegriffen, die als Array von Meldungen nach Fehlernummern geordnet sind. perror gibt die entsprechende Fehlermeldung mit dem errno-Wert als Index an _sys_errlist. Der Wert der Variablen _sys_nerr wird als maximale Anzahl an Elementen im _sys_errlist-Array definiert.
Spezifische Ergebnisse kehrt Aufruf perror sofort nach einer Bibliotheksroutine mit einen Fehler zurück. Andernfalls können nachfolgende Aufrufe den errno-Wert überschreiben.
Im Windows-Betriebssystem können einige errno-Werte, die in ERRNO.H aufgeführt werden, nicht verwendet. Diese Werte werden zum UNIX-Betriebssystem reserviert. _doserrno, errno, _sys_errlist und _sys_nerr finden Sie Listen von errno-Werten, die vom Windows-Betriebssystem verwendet werden. perror gibt eine leere Zeichenfolge für jeden errno-Wert, der nicht durch diese Plattformen verwendet wird.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
perror |
<stdio.h oder> stdlib.h <> |
_wperror |
<stdio.h> oder <wchar.h> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
Bibliotheken
Alle Versionen 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 );
}
}
Ausgabe
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
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.