Aracılığıyla paylaş


perror, _wperror

Bir hata iletisi yazdırın.

Sözdizimi

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

Parametreler

message
Yazdırılacak dize iletisi.

Açıklamalar

işlevi, perror öğesine stderrbir hata iletisi yazdırır. _wperror , öğesinin _perrorgeniş karakterli bir sürümüdür; message bağımsız değişkeni _wperror geniş karakterli bir dizedir. _wperror ve _perror aksi takdirde aynı şekilde davran.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

TCHAR.H yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tperror perror perror _wperror

message önce yazdırılır, ardından iki nokta üst üste, ardından hatayı oluşturan son kitaplık çağrısı için sistem hata iletisi ve son olarak yeni satır karakteri yazdırılır. Null işaretçi veya null dize işaretçisiyse message , perror yalnızca sistem hata iletisini yazdırır.

Hata numarası değişkeninde errno depolanır (ERRNO'da tanımlanır. H). Sistem hata iletilerine, hata numarasına göre sıralanmış bir ileti dizisi olan değişkeni _sys_errlistüzerinden erişilir. perrordeğerini dizininde _sys_errlistkullanarak errno uygun hata iletisini yazdırır. değişkeninin _sys_nerr değeri, dizideki _sys_errlist en fazla öğe sayısı olarak tanımlanır.

Doğru sonuçlar için, bir kitaplık yordamı hata döndürdüğünde hemen çağrısında perror bulunur. Aksi takdirde, sonraki çağrılar değerin errno üzerine yazabilir.

Windows işletim sisteminde ERRNO'da listelenen bazı errno değerler. H kullanılmamış. Bu değerler UNIX işletim sistemi tarafından kullanılmak üzere ayrılmıştır. Windows işletim sistemi tarafından kullanılan değerlerin listesi için bkzerrno. , _doserrno, _sys_errlistve_sys_nerr.errno perror bu platformlar tarafından kullanılmayan herhangi errno bir değer için boş bir dize yazdırır.

Gereksinimler

Yordam Gerekli başlık
perror <stdio.h> veya <stdlib.h>
_wperror <stdio.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Kitaplıklar

C çalışma zamanı kitaplıklarının tüm sürümleri.

Örnek

// 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

Ayrıca bkz.

İşlem ve ortam denetimi
clearerr
ferror
strerror, _strerror, _wcserror, __wcserror