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; consulte strerror_s, _strerror_s, _wcserror_s, __wcserror_s.

Sintaxis

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 una cadena de mensaje de error, en un búfer de almacenamiento local de subprocesos que pertenece al runtime. Las llamadas posteriores en el mismo subproceso pueden sobrescribir esta cadena.

Comentarios

La función strerror asigna errnum a una cadena de mensaje de error y devuelve un puntero a la cadena. Las strerror funciones y _strerror no imprimen realmente el mensaje. Para imprimir, llame 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. Contiene el mensaje de error del sistema de la última llamada a la biblioteca que generó un error. Si llama a __wcserror, la cadena de mensaje de error finaliza con el carácter de nueva línea ('\n'). Las otras funciones no agregan '\n'. Cuando strErrMsg no NULLes , la cadena contiene, en orden: la strErrMsg cadena, dos puntos, un espacio, el mensaje de error del sistema. El mensaje de cadena puede tener, como máximo, 94 caracteres de longitud, en caracteres estrechos (_strerror) o anchos (__wcserror).

El número de error real de _strerror se almacena en la variable errno. Para generar resultados precisos, llame inmediatamente _strerror después de que una rutina de biblioteca devuelva un error. De lo contrario, las llamadas posteriores a las rutinas de biblioteca pueden sobrescribir el errno valor.

_wcserror y __wcserror son versiones con caracteres anchos de strerror y _strerror, respectivamente.

_strerror, _wcserrory __wcserror son específicos de Microsoft, no forman parte de la biblioteca estándar de C. No se recomienda usarlos donde quiera que haya código portátil. Para la compatibilidad con C estándar, use strerror en su lugar.

Para obtener cadenas de error, se recomienda strerror o _wcserror en lugar de las macros en desuso _sys_errlist y las _sys_nerr funciones __sys_errlist internas en desuso y __sys_nerr.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Asignaciones de rutinas de texto genérico

Rutina TCHAR.H _UNICODE y _MBCS no definidos _MBCS definido _UNICODE definido
_tcserror strerror strerror _wcserror

Requisitos

Routine Encabezado necesario
strerror <string.h>
_strerror <string.h>
_wcserror, __wcserror <string.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

Vea el ejemplo de perror.

Consulte también

Manipulación de cadenas
clearerr
ferror
perror, _wperror