strerror
, _strerror
, _wcserror
, __wcserror
Sistem hata iletisi dizesini (strerror
, _wcserror
) alır veya kullanıcı tarafından sağlanan bir hata iletisi dizesini (_strerror
, __wcserror
) biçimlendirir. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. strerror_s
, _strerror_s
, _wcserror_s
. __wcserror_s
Sözdizimi
char * strerror(
int errnum );
char * _strerror(
const char *strErrMsg );
wchar_t * _wcserror(
int errnum );
wchar_t * __wcserror(
const wchar_t *strErrMsg );
Parametreler
errnum
Hata numarası.
strErrMsg
Kullanıcı tarafından sağlanan ileti.
Dönüş değeri
Bu işlevlerin tümü, çalışma zamanına ait iş parçacığı yerel depolama arabelleğindeki bir hata iletisi dizesine işaretçi döndürür. Aynı iş parçacığında daha sonra yapılan çağrılar bu dizenin üzerine yazabilir.
Açıklamalar
İşlev strerror
bir hata iletisi dizesine eşler errnum
ve dizeye bir işaretçi döndürür. strerror
ve _strerror
işlevleri aslında iletiyi yazdırmaz. Yazdırmak için gibi fprintf
bir çıkış işlevi çağırın:
if (( _access( "datafile", 2 )) == -1 )
fprintf( stderr, _strerror(NULL) );
olarak NULL
geçirilirsestrErrMsg
, _strerror
dizeye bir işaretçi döndürür. Hata oluşturan son kitaplık çağrısı için sistem hata iletisini içerir. çağrısı __wcserror
yaparsanız, hata iletisi dizesi yeni satır karakteri ('\n'
) tarafından sonlandırılır. Diğer işlevler eklemez '\n'
. olmadığında strErrMsg
NULL
, dize sırasıyla şunu içerir: dizeniz strErrMsg
, iki nokta üst üste, boşluk, sistem hata iletisi. Dize iletiniz, dar () veya geniş (_strerror
__wcserror
) karakterlerle en fazla 94 karakter uzunluğunda olabilir.
için _strerror
gerçek hata numarası değişkeninde errno
depolanır. Doğru sonuçlar elde etmek için, bir kitaplık yordamı hata döndürdüğünde hemen çağrısında _strerror
bulunur. Aksi takdirde, daha sonra kitaplık yordamlarına yapılan çağrılar değerin errno
üzerine yazabilir.
_wcserror
ve __wcserror
sırasıyla ve _strerror
'nin strerror
geniş karakterli sürümleridir.
_strerror
, _wcserror
ve __wcserror
Standart C kitaplığının parçası değil, Microsoft'a özeldir. Bunları taşınabilir kod istediğiniz yerde kullanmanızı önermeyiz. Standart C uyumluluğu için bunun yerine kullanın strerror
.
Hata dizelerini almak için, kullanım dışı bırakılmış makrolar _sys_errlist
ve kullanım dışı bırakılmış iç işlevleri __sys_errlist
ve __sys_nerr
_sys_nerr
yerine veya _wcserror
önerilirstrerror
.
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 |
---|---|---|---|
_tcserror |
strerror |
strerror |
_wcserror |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
strerror |
<string.h> |
_strerror |
<string.h> |
_wcserror , __wcserror |
<string.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
örneğine perror
bakın.