_mbsnbset, _mbsnbset_l
İlk olarak n bir çok baytlı karakter dizesi için belirtilen karakter bayt.Bu işlevlerin daha güvenli sürümlerinde kullanılabilir; see _mbsnbset_s, _mbsnbset_s_l.
Önemli |
---|
Bu API, Windows çalışma zamanı yürütme uygulamalarda kullanılamaz.Daha fazla bilgi için bkz: /zw ile desteklenmeyen crt işlevlerinin. |
unsigned char *_mbsnbset(
unsigned char *str,
unsigned int c,
size_t count
);
unsigned char *_mbsnbset_l(
unsigned char *str,
unsigned int c,
size_t count,
_locale_t locale
);
Parametreler
str
Değiştirilecek dize.c
Tek baytlı veya çok baytlı karakter ayarı.count
Ayarlamak için bayt sayısı.locale
Kullanılacak yerel ayarı.
Dönüş Değeri
_mbsnbsetbir işaretçi değiştirilen dize olarak döndürür.
Notlar
_mbsnbset Ve _mbsnbset_l işlevlerini ayarlama, en çok, ilk count bayt str için c.count Uzunluğundan daha büyük str, uzunluğu, str yerine kullanılan count.c Çok baytlı bir karakter ve tamamen tarafından belirlenen son bayt ayarlanamaz count, son bayt boş karakterle sıfır eklenir._mbsnbsetve _mbsnbset_l bir sonlandırma yerleştirmez sonunda null str.
_mbsnbsetve _mbsnbset_l benzer şekilde, _mbsnset, ayarlar dışında count bayt yerine count karakter c.
str Olan NULL veya count sıfırsa, açıklandığı gibi bu işlevi geçersiz bir parametre bir özel durum oluşturur Parametre doğrulama.Yürütülmesine devam etmek için izin verilip verilmediğini errno ayarlamak EINVAL ve işlev NULL.Ayrıca, c geçerli bir çok baytlı karakter değil errno ayarlamak EINVAL ve bir boşluk yerine kullanılır.
Çıkış değeri ayarı tarafından etkilenen LC_CTYPE ; bölgesel ayar kategorisi bkz: setlocale daha fazla bilgi için._mbsnbset Bu işlev sürümünü kullanan yerel bu yerel ayara bağımlı davranışı; _mbsnbset_l bunun yerine geçirilen yerel parametre kullanmak dışında sürüm aynıdır.Daha fazla bilgi için bkz. Yerel ayar.
Güvenlik notu bu API, duruma göre bir arabellek taşması sorunu potansiyel bir tehlike doğurur.Arabellek taşması sorunları sistem saldırı, içinde unwarranted bir ayrıcalık yükselmesine neden sık kullanılan bir yöntemdir.Daha fazla bilgi için bkz: Kaçınma arabelleğin taşmasına neden.
Genel metin eşlemeleri yordamına girildi
Tchar.h yordamına girildi |
_UNICODE ve _mbcs tanımlanmamış |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// crt_mbsnbset.c
// compile with: /W3
#include <mbstring.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 bytes of string to be *'s */
printf( "Before: %s\n", string );
_mbsnbset( string, '*', 4 ); // C4996
// Note; _mbsnbset is deprecated; consider _mbsnbset_s
printf( "After: %s\n", string );
}
Çıktı
Before: This is a test
After: **** is a test
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanın PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.
Ayrıca bkz.
Başvuru
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l