Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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