Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Move um buffer para outra.Essas são sistema autônomo versões de memmove, wmemmove com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.
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
);
Parâmetros
dest
Objeto de destino.numberOfElements
dimensionar do buffer de destino.src
Objeto de fonte.count
Número de bytes (memmove_s) ou caracteres ()wmemmove_s) para copiar.
Valor de retorno
Zero se for bem-sucedida; um código de erro em caso de falha
Condições de erro
dest |
numberOfElements |
src |
Valor de Retorno |
Sumário de dest |
|---|---|---|---|---|
NULL |
any |
any |
EINVAL |
não modificado |
any |
any |
NULL |
EINVAL |
não modificado |
any |
< count |
any |
ERANGE |
não modificado |
Comentários
Cópias count bytes de caracteres de src para dest*.* Se algumas regiões da área de fonte e destino estiverem sobrepostas, memmove_s garante que os bytes de fonte original na região de sobreposição são copiados antes que sejam substituídos.
If dest ou se src é um ponteiro nulo ou se a seqüência de caracteres de destino for muito pequena, essas funções invocar um manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro . Se a execução for permitida para continuar, essas funções retornam EINVAL e conjunto errno para EINVAL.
Requisitos
Rotina |
Cabeçalho necessário |
|---|---|
memmove_s |
<string.h> |
wmemmove_s |
<wchar.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// 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);
}
Saída
Before: 0123456789
After: 0012345789
Equivalente do NET Framework
Consulte também
Referência
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l
funções strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l