perror, _wperror
Imprime un mensaje de error.
void perror(
const char *string
);
void _wperror(
const wchar_t *string
);
Parámetros
- string
Mensaje de cadena para imprimir.
Comentarios
la función de perror imprime un mensaje de error a stderr._wperror es una versión con caracteres anchos de _perror; el argumento de string a _wperror es una cadena de caracteres._wperror y _perror se comportan exactamente igual de otra manera.
Asignaciones de la rutina de texto genérico
rutina de TCHAR.H |
_UNICODE y _MBCS no definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
string es impreso primero, seguido de dos puntos, después por el mensaje de error del sistema para la última llamada de biblioteca que generó el error y, finalmente por un carácter de nueva línea.Si string es un puntero NULL o un puntero a una cadena nula, perror imprime únicamente el mensaje de error del sistema.
el número de error se almacena en errno variable (definido en ERRNO.H).Los mensajes de error del sistema a través de _sys_errlistvariable, que es una matriz por error de número orden los mensajes.perror imprime el mensaje de error adecuado mediante el valor de errno como índice a _sys_errlist.El valor de _sys_nerr variable se define como el número máximo de elementos en la matriz de _sys_errlist .
para los resultados precisos, la llamada perror inmediatamente después de una rutina de biblioteca vuelve con un error.si no, las llamadas subsiguientes pueden sobrescribir el valor de errno .
En el sistema operativo Windows, algunos valores de errno enumerados en ERRNO.H son no usados.Estos valores se reservan para uso del sistema operativo UNIX.Vea _doserrno, errno, _sys_errlist, y _sys_nerr para una lista de valores de errno utilizados por el sistema operativo Windows.perror imprime una cadena vacía para cualquier valor de errno no utilizado por estas plataformas.
Requisitos
rutina |
Encabezado necesario |
---|---|
perror |
<stdio.h> o <stdlib.h> |
_wperror |
<stdio.h> o <wchar.h> |
Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.
bibliotecas
todas las versiones de Bibliotecas en tiempo de ejecución de C.
Ejemplo
// 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 );
}
}
Output
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
Equivalente en .NET Framework
No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.