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.