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 rutina de texto genérico
Rutina TCHAR.H |
_UNICODE y _MBCS no definidos |
_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 la variable errno (definido en ERRNO.H). Se obtiene acceso a los mensajes de error del sistema a través de la variable _sys_errlist, que es una matriz de mensajes ordenados por número de error. perror imprime el mensaje de error adecuado mediante el valor de errno como índice a _sys_errlist. El valor de la variable _sys_nerr se define como el número máximo de elementos de la matriz _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 las 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 );
}
}
Resultados
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, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.