Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

memmove_s, wmemmove_s

Mueve un búfer a otro. Estas versiones de memmove, wmemmove tienen mejoras de seguridad, como se describe en Características de seguridad de 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
);

dest

Objeto de destino.

numberOfElements

Tamaño del búfer de destino.

src

Objeto de origen.

count

Número de bytes (memmove_s) o de caracteres (wmemmove_s) para copiar.

Cero si correctamente; un código de error del error

Condiciones de error

dest

numberOfElements

src

Valor devuelto

Contenido de dest

NULL

any

any

EINVAL

no modificado

any

any

NULL

EINVAL

no modificado

any

< count

any

ERANGE

no modificado

Copia los bytes de count de caracteres de src adest. Si algunas regiones de origen y de destino se superponen, memmove_s garantiza que los bytes de origen originales en la región que se superpone se copiarán antes de ser sobrescrito.

Si dest o si src es un puntero null, o si la cadena de destino es demasiado pequeño, estas funciones invoca un controlador no válido de parámetro, tal y como se describe en Validación de parámetros . Si la ejecución puede continuar, estas funciones devuelven EINVAL y establecen errno en EINVAL.

Rutina

Encabezado necesario

memmove_s

<string.h>

wmemmove_s

<wchar.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

// 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);
}

Before: 0123456789
 After: 0012345789

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft