strerror, _strerror, _wcserror, __wcserror
Obtiene una cadena de mensaje de error del sistema (strerror, _wcserror) o da formato a una cadena de mensaje de error proporcionada por el usuario (_strerror, __wcserror). Hay disponibles versiones más seguras de estas funciones; vea strerror_s, _strerror_s, _wcserror_s, __wcserror_s.
char *strerror( int errnum ); char *_strerror( const char *strErrMsg ); wchar_t * _wcserror( int errnum ); wchar_t * __wcserror( const wchar_t *strErrMsg );
Parámetros
errnum
Número de error.strErrMsg
Mensaje proporcionado por el usuario.
Valor devuelto
Todas estas funciones devuelven un puntero a la cadena de mensaje de error. Las siguientes llamadas pueden sobrescribir la cadena.
Comentarios
La función strerror asigna errnum a una cadena de mensaje de error y devuelve un puntero a la cadena. Ni strerror ni _strerror imprimen el mensaje en realidad: para eso, hay que llamar a una función de salida como fprintf:
if (( _access( "datafile",2 )) == -1 )
fprintf( stderr, _strerror(NULL) );
Si strErrMsg se pasa como NULL, _strerror devuelve un puntero a una cadena que contiene el mensaje de error del sistema de la última llamada a biblioteca que generó un error. La cadena del mensaje de error termina con el carácter de línea nueva ('\n'). Si strErrMsg no es igual a NULL, _strerror devuelve un puntero a una cadena que contiene (en orden) el mensaje de cadena, dos puntos, un espacio, el mensaje de error del sistema de la última llamada a biblioteca que generó un error y, por último, un carácter de línea nueva. El mensaje de cadena puede tener, como máximo, 94 caracteres.
El número de error real para _strerror se almacena en la variable errno. Para generar resultados precisos, llame a _strerror inmediatamente después de que una rutina de biblioteca devuelva un error. De lo contrario, las llamadas subsiguientes a strerror o _strerror pueden sobrescribir el valor de errno.
_wcserror y __wcserror son versiones con caracteres anchos de strerror y _strerror, respectivamente.
_strerror, _wcserror y __wcserror no forman parte de la definición de ANSI, sino que son extensiones de Microsoft que le aconsejamos no use si lo que quiere es código portable. Para la compatibilidad con ANSI, use strerror en su lugar.
Para obtener cadenas de error, recomendamos strerror o _wcserror en lugar de las macros desusadas _sys_errlist y _sys_nerr y las funciones internas desusadas __sys_errlist y __sys_nerr.
Asignaciones de rutina de texto genérico
Rutina TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcserror |
strerror |
strerror |
_wcserror |
Requisitos
Rutina |
Encabezado necesario |
---|---|
strerror |
<string.h> |
_strerror |
<string.h> |
_wcserror, __wcserror |
<string.h> |
Para obtener información adicional de compatibilidad, vea Compatibilidad.
Ejemplo
Vea el ejemplo de perror.