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 stderr
bir hata iletisi yazdırır. _wperror
, öğesinin _perror
geniş 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. perror
değerini dizininde _sys_errlist
kullanarak 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_errlist
ve_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