Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Imprima uma mensagem de erro.
Sintaxe
void perror(
const char *message
);
void _wperror(
const wchar_t *message
);
Parâmetros
message
Mensagem de cadeia de caracteres para imprimir.
Comentários
A função perror imprime uma mensagem de erro para stderr. A função _wperror é uma versão de caractere largo da função _perror; o argumento message para _wperror é uma cadeia de caracteres larga. Caso contrário, _wperror e _perror se comportam de forma idêntica.
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 |
|---|---|---|---|
_tperror |
perror |
perror |
_wperror |
message é impresso primeiro, seguido por dois-pontos e pela mensagem de erro do sistema para a última chamada de biblioteca que gerou o erro e, finalmente, por um caractere de nova linha. Se message for um ponteiro nulo ou um ponteiro para uma cadeia de caracteres nula, perror imprimirá somente a mensagem de erro do sistema.
O número do erro é gravado na variável errno (definida em ERRNO. H). As mensagens de erro do sistema são acessadas por meio da variável _sys_errlist, que é uma matriz de mensagens ordenadas por número de erro. perror imprime a mensagem de erro apropriada usando o valor errno como um índice para _sys_errlist. O valor da variável _sys_nerr é definido como o número máximo de elementos na _sys_errlist matriz.
Para obter resultados precisos, chame perror imediatamente após uma rotina de biblioteca retornar um erro. Caso contrário, chamadas subsequentes podem substituir o valor errno.
No sistema operacional Windows, alguns valores errno listados no ERRNO.H não são usados. Esses valores são reservados para uso pelo sistema operacional UNIX. Consulte errno, _doserrno, _sys_errliste _sys_nerr para obter uma lista de errno valores usados pelo sistema operacional Windows. perror imprime uma cadeia de caracteres vazia para qualquer valor errno não usado por essas plataformas.
Requisitos
| Rotina | Cabeçalho necessário |
|---|---|
perror |
<stdio.h> ou <stdlib.h> |
_wperror |
<stdio.h> ou <wchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Bibliotecas
Todas as versões das bibliotecas em tempo de execução C.
Exemplo
// crt_perror.c
// compile with: /W3
/* This program attempts to open a file named
* NOSUCHF.ILE. Because this file probably doesn't exist,
* an error message is displayed. The same message is
* created using perror, strerror, and _strerror.
*/
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <share.h>
int main( void )
{
int fh;
if( _sopen_s( &fh, "NOSUCHF.ILE", _O_RDONLY, _SH_DENYNO, 0 ) != 0 )
{
/* Three ways to create error message: */
perror( "perror says open failed" );
printf( "strerror says open failed: %s\n",
strerror( errno ) ); // C4996
printf( _strerror( "_strerror says open failed" ) ); // C4996
// Note: strerror and _strerror are deprecated; consider
// using strerror_s and _strerror_s instead.
}
else
{
printf( "open succeeded on input file\n" );
_close( fh );
}
}
perror says open failed: No such file or directory
strerror says open failed: No such file or directory
_strerror says open failed: No such file or directory
Confira também
Controle de processo e ambiente
clearerr
ferror
strerror, _strerror, _wcserror, __wcserror