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, _wcserror
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 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