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 fprintfbir çıkış işlevi çağırın:

if (( _access( "datafile", 2 )) == -1 )
   fprintf( stderr, _strerror(NULL) );

olarak NULLgeç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ı __wcserroryaparsanı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 errnodepolanı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.

_wcserrorve __wcserror sırasıyla ve _strerror'nin strerror geniş karakterli sürümleridir.

_strerror, _wcserrorve __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 perrorbakın.

Ayrıca bkz.

Dize işleme
clearerr
ferror
perror, _wperror