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 NULL
es , 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
, _wcserror
y __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
.