Compartilhar via


perror, _wperror

Imprime uma mensagem de erro.

void perror( 
   const char *string  
); 
void _wperror( 
   const wchar_t *string  
);

Parâmetros

  • string
    Mensagem de cadeia de caracteres para imprimir.

Comentários

A função de perror imprime uma mensagem de erro a stderr. _wperror é uma versão de ampla caractere de _perror; o argumento de string a _wperror é uma cadeia de caracteres de ampla caractere. _wperror e _perror se comportam idêntica de outra forma.

Mapeamentos da rotina de texto genérico

Rotina TCHAR.H

_UNICODE & _MBCS não definido

_MBCS definido

_UNICODE definido

_tperror

perror

perror

_wperror

string é impresso primeiro, seguido por dois-pontos, então 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 string for um ponteiro nulo ou um ponteiro para uma cadeia de caracteres nula, perror imprime apenas a mensagem de erro do sistema.

O número do erro é armazenado na variável errno (definido 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 pelo número do erro. perror imprime a mensagem de erro apropriado usando o valor de errno como um índice a _sys_errlist. O valor da variável _sys_nerr é definido como o número máximo de elementos na matriz _sys_errlist.

Para resultados precisos, a chamada perror imediatamente após uma rotina de biblioteca retorna o com um erro. Caso contrário, as chamadas subsequentes podem substituir o valor de errno .

No sistema operacional Windows, alguns valores de errno listados em ERRNO.H não são usados. Esses valores são reservados para uso do sistema operacional do UNIX. Consulte _doserrno, errno, _sys_errlist, e _sys_nerr para uma lista de valores de errno usados pelo sistema operacional Windows. perror imprime uma cadeia de caracteres vazia para qualquer valor de errno não usados por essas plataformas.

Requisitos

Rotina

Cabeçalho necessário

perror

<stdio.h ou> stdlib.h <>

_wperror

<stdio.h> ou <wchar.h>

Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

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 );
   }
}

Saída

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

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.

Consulte também

Referência

Processo e controle de ambiente

clearerr

ferror

strerror, _strerror, _wcserror, __wcserror