Aracılığıyla paylaş


strerror_s, _strerror_s, _wcserror_s, __wcserror_s

Sistem hatası iletisi alıyorum (strerror_s, _wcserror_s) veya kullanıcı tarafından sağlanan hata iletisi (_strerror_s, __wcserror_s). Bunlar sürümleridir strerror, _strerror, _wcserror, __wcserror açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.

errno_t strerror_s(
   char *buffer,
   size_t numberOfElements,
   int errnum 
);
errno_t _strerror_s(
   char *buffer,
   size_t numberOfElements,
   const char *strErrMsg 
);
errno_t _wcserror_s(
   wchar_t *buffer,
   size_t numberOfElements,
   int errnum 
);
errno_t __wcserror_s(
   wchar_t *buffer,
   size_t numberOfElements,
   const wchar_t *strErrMsg 
);
template <size_t size>
errno_t strerror_s(
   char (&buffer)[size],
   int errnum 
); // C++ only
template <size_t size>
errno_t _strerror_s(
   char (&buffer)[size],
   const char *strErrMsg 
); // C++ only
template <size_t size>
errno_t _wcserror_s(
   wchar_t (&buffer)[size],
   int errnum 
); // C++ only
template <size_t size>
errno_t __wcserror_s(
   wchar_t (&buffer)[size],
   const wchar_t *strErrMsg 
); // C++ only

Parametreler

  • buffer
    Hata dizesini barındıran arabellek.

  • numberOfElements
    Arabellek boyutu.

  • errnum
    Hata numarası.

  • strErrMsg
    Kullanıcı tarafından sağlanan ileti.

Dönüş Değeri

Sıfır başarılı olursa, hata durumunda bir hata kodu.

Hata Condtions

buffer

numberOfElements

strErrMsg

İçeriğibuffer

NULL

herhangi bir

herhangi bir

yok

herhangi bir

0

herhangi bir

modifiye edilmemiş

Notlar

strerror_s Eşlemeleri işlev errnum bir hata iletisi dize olarak dize işaretçisi döndürme. _strerror_shata numarasını zaman almaz; geçerli değerini kullanır errno uygun iletiyi belirlemek için. Ne strerror_s ne de _strerror_s gerçekte iletiyi yazdırır: Bunun için gibi bir çıktı işlevini aramasına gerek fprintf:

if (( _access( "datafile",2 )) == -1 )
{
   _strerror_s(buffer, 80);
   fprintf( stderr, buffer );
}

strErrMsg Olan NULL, _strerror_s bir işaretçi hata üretilen son Kütüphane çağrısı için sistem hata iletisi içeren bir dize döndürür. Hata iletisi dize yeni satır karakteri ('\n') tarafından sonlandırıldı. strErrMsg Eşit değildir NULL, sonra _strerror_s bir işaretçi (sırasıyla) dize iletiniz, bir iki nokta üst üste, bir boşluk, hata ve yeni satır karakteri oluşturmanın son Kütüphane çağrısı için sistem hata iletisi içeren bir dize döndürür. Dize iletinizi, en çok, 94 karakter uzunluğunda olabilir.

Uzunluğu aşıyorsa, bu işlevleri hata iletisi kesecek numberOfElements -1. Sonuç dizesi, buffer her zaman boş sonlandırılmış.

Gerçek hata numarası _strerror_s deðiþkeninde saklanan errno. Sistem hata iletileri değişkeni erişilen _sys_errlist, bir dizi hata numarasına göre sıralanmış iletilerin olduğu. _strerror_silgili hata iletisini kullanarak erişen errno değişken için dizin değeri _sys_errlist. Değişkenin değeri _sys_nerr en fazla öğe sayısı olarak tanımlanan _sys_errlist dizi. Kesin sonuçlar için arama _strerror_s sonra hemen bir kitaplık yordamı bir hata döndürür. Aksi takdirde, sonraki aramalar için strerror_s veya _strerror_s üzerine errno değeri.

_wcserror_sve __wcserror_sgeniş karakter sürümleri strerror_sve _strerror_s, sırasıyla.

Bu işlevler, kendi parametreleri doğrulayın. Arabellek ise NULL boyut parametresi 0 ise veya geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama . İşlevler dönüş yürütülmesine devam etmek için izin verilip verilmediğini, EINVAL ve errno için EINVAL.

_strerror_s, _wcserror_s,ve __wcserror_s ANSI tanımının bir parçası değildir, ancak bunun yerine Microsoft uzantıları şunlardır. Bunları, burada taşınabilirlik istendiğini kullanmayın; ANSI uyumluluk için kullanmak strerror_s yerine.

C++'da, bu işlevler tarafından şablon aşırı kolaylaştırılmıştır; aşırı arabellek uzunluğu otomatik olarak size baðýmsýz deðiþkeni belirtmek için gereksiz gerçekleştirip. Daha fazla bilgi için bkz. Güvenli şablon aşırı yükleme.

Bu işlevleri hata ayıklama sürümlerini ilk tampon 0xFD ile doldurun. Bu davranışı devre dışı bırakmak için _CrtSetDebugFillThreshold.

Genel metin yordamı eşlemeleri

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlı değil

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tcserror_s

strerror_s

strerror_s

_wcserror_s

Gereksinimler

Yordamı

Gerekli başlık

strerror_s, _strerror_s

<string.h>

_wcserror_s, __wcserror_s

<string.h> veya <wchar.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

Örneğin bakın perror.

.NET Framework Eşdeğeri

System::Exception::Message

Ayrıca bkz.

Başvuru

Dize işlemleri (crt)

clearerr

ferror

perror, _wperror