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