Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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