Compartir a través de


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.

Equivalente en .NET Framework

System::Exception::Message

Vea también

Referencia

Manipulación de cadenas (CRT)

clearerr

ferror

perror, _wperror