memmove_s, wmemmove_s
Bir arabellek diğerine taşır.Bunlar sürümleridir memmove, wmemmove açıklandığı gibi güvenlik geliştirmeleri ile CRT'deki Güvenlik Özellikleri.
errno_t memmove_s(
void *dest,
size_t numberOfElements,
const void *src,
size_t count
);
errno_t wmemmove_s(
wchar_t *dest,
size_t numberOfElements,
const wchar_t *src,
size_t count
);
Parametreler
dest
Hedef nesne.numberOfElements
Hedef arabelleğin boyutudur.src
Kaynak nesne.count
Bayt sayısı (memmove_s) veya karakter (wmemmove_s) kopyalamak için.
Dönüş Değeri
Sıfır başarılı olursa; hata durumunda bir hata kodu
Hata koşulları
dest |
numberOfElements |
src |
Dönüş değeri |
İçeriğidest |
---|---|---|---|---|
NULL |
herhangi bir |
herhangi bir |
EINVAL |
modifiye edilmemiş |
herhangi bir |
herhangi bir |
NULL |
EINVAL |
modifiye edilmemiş |
herhangi bir |
< count |
herhangi bir |
ERANGE |
modifiye edilmemiş |
Notlar
Kopya count bayt karakterler, src için dest*.* Bazı bölgelerde kaynak alanı ve hedef üst üste gelirse, memmove_s üzerine önce örtüşen özgün kaynak dosyadaki kopyalanır sağlar.
dest Veya src bir null işaretçi veya hedef dize çok küçükse, bu işlevler bir geçersiz parametre işleyicisi açıklandığı şekilde harekete Parametre Doğrulama .Bu işlevler dönüş yürütülmesine devam etmek için izin verilip verilmediğini, EINVAL ve errno için EINVAL.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
memmove_s |
<string.h> |
wmemmove_s |
<wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// crt_memmove_s.c
//
// The program demonstrates the
// memmove_s function which works as expected
// for moving overlapping regions.
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "0123456789";
printf("Before: %s\n", str);
// Move six bytes from the start of the string
// to a new position shifted by one byte. To protect against
// buffer overrun, the secure version of memmove requires the
// the length of the destination string to be specified.
memmove_s((str + 1), strnlen(str + 1, 10), str, 6);
printf_s(" After: %s\n", str);
}
Çıktı
Before: 0123456789
After: 0012345789
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l