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). Estão disponíveis versões mais seguras dessas funções; consulte strerror_s, _strerror_s, _wcserror_s, __wcserror_s.

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

  • strErrMsg
    Mensagem fornecida pelo usuário.

Valor de retorno

Todas essas funções retornam um ponteiro para a cadeia de caracteres de mensagens de erro. Chamadas subsequentes podem substituir a 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. O strerror nem _strerror imprimem a mensagem: Para isso, é preciso chamar 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 que contém a mensagem de erro do sistema para a última chamada da biblioteca que produziu um erro. A cadeia de caracteres de mensagens de erro é encerrada pelo caractere newline ('\n'). Se strErrMsg não for igual a NULL, então _strerror retorna um ponteiro para uma cadeia de caracteres que contém (nessa ordem) sua mensagem de cadeia de caracteres, dois-pontos, um espaço, a mensagem de erro do sistema para a última chamada da biblioteca que produz um erro e um caractere newline. Sua mensagem da cadeia de caracteres pode ter, no máximo, 94 caracteres de comprimento.

O número do erro real para _strerror é armazenado na variável errno. Para produzir resultados precisos, chame _strerror imediatamente após uma rotina da biblioteca retornar um erro. Caso contrário, chamadas subsequentes para strerror ou _strerror podem substituir o valor errno.

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

_strerror, _wcserror e __wcserror não fazem parte da definição de ANSI; elas são extensões da Microsoft e recomendamos que não sejam utilizadas onde você deseja usar código portátil. No caso de compatibilidade com ANSI, ao invés disso, use strerror.

Para obter cadeias de caracteres de erros, recomendamos strerror ou _wcserror ao invés dos macros preteridos _sys_errlist e _sys_nerr e das funções internas preteridas __sys_errlist e __sys_nerr.

Mapeamentos da 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 adicionais sobre compatibilidade, consulte Compatibilidade.

Exemplo

Veja o exemplo de perror.

Equivalência do .NET Framework

System::Exception::Message

Consulte também

Referência

Manipulação da cadeia de caracteres (CRT)

clearerr

ferror

perror, _wperror