strerror, _strerror, _wcserror, __wcserror

Obtém uma cadeia de caracteres de mensagens de erro do sistema (strerror, _wcserror) ou formata uma cadeia caracteres de mensagens de erro fornecida pelo usuário (_strerror, __wcserror). Versões mais seguras dessas funções estão disponíveis; confira strerror_s, _strerror_s, _wcserror_s, __wcserror_s.

Sintaxe

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 erro.

strErrMsg
Mensagem fornecida pelo usuário.

Retornar valor

Todas essas funções retornam um ponteiro para uma cadeia de caracteres de mensagem de erro, em um buffer de armazenamento local de thread pertencente ao runtime. Chamadas posteriores no mesmo thread podem substituir essa cadeia de caracteres.

Comentários

A função strerror mapeia errnum para uma cadeia de caracteres de mensagens de erro e retorna um ponteiro para a cadeia de caracteres. As strerror funções e _strerror não imprimem a mensagem. Para imprimir, chame uma função de saída como fprintf:

if (( _access( "datafile", 2 )) == -1 )
   fprintf( stderr, _strerror(NULL) );

Se strErrMsg for passado como NULL, _strerror retorna um ponteiro para uma cadeia de caracteres. Ele contém a mensagem de erro do sistema para a última chamada da biblioteca que produziu um erro. Se você chamar __wcserror, a cadeia de caracteres da mensagem de erro será encerrada pelo caractere de nova linha ('\n'). As outras funções não adicionam '\n'. Quando strErrMsg não NULLé , a cadeia de caracteres contém, em ordem: sua strErrMsg cadeia de caracteres, dois pontos, um espaço, a mensagem de erro do sistema. Sua mensagem de cadeia de caracteres pode ter, no máximo, 94 caracteres, em caracteres estreitos (_strerror) ou largos (__wcserror).

O número de erro real para _strerror é armazenado na variável errno. Para produzir resultados precisos, a chamada _strerror imediatamente após uma rotina de biblioteca retornar um erro. Caso contrário, chamadas posteriores para rotinas de biblioteca podem substituir o errno valor.

_wcserror e __wcserror são as versões de caractere largo de strerror e _strerror, respectivamente.

_strerror, e __wcserror são específicos da Microsoft, _wcserrornão fazem parte da biblioteca C padrão. Não recomendamos que você as use se quiser um código portátil. Para compatibilidade com C padrão, use strerror em vez disso.

Para obter cadeias de caracteres de erro, recomendamos strerror ou _wcserror em vez das macros _sys_errlist preteridas e das funções __sys_errlist internas preteridas e _sys_nerr__sys_nerr.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Mapeamentos de rotina de texto genérico

Rotina TCHAR.H _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_tcserror strerror strerror _wcserror

Requisitos

Rotina Cabeçalho necessário
strerror <string.h>
_strerror <string.h>
_wcserror, __wcserror <string.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Confira o exemplo de perror.

Confira também

Manipulação de cadeia de caracteres
clearerr
ferror
perror, _wperror