Compartilhar via


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.

Valor retornado

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 and _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 string contém, em ordem: sua strErrMsg string, 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 é memorizado na variável errno. Para produzir resultados precisos, chame _strerror imediatamente depois que 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, _wcserrore __wcserror são específicos da Microsoft, nã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 o padrão C, use strerror em vez disso.

Para obter strings de erro, recomendamos strerror or _wcserror em vez das macros obsoletas _sys_errlist e _sys_nerr e as funções __sys_errlist internas obsoletas e __sys_nerr.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no 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