memccpy, memchr, memcmp, memcpy, memset, memset_s o memmove Subroutine

Finalidad

Realiza operaciones de memoria y maneja violaciones de restricciones de tiempo de ejecución.

Biblioteca

Biblioteca C estándar (libc.a)

Sintaxis

#include <memory.h>
#include <string.h>
#define STDC_WANT_LIB_EXT1 1
void *memccpy (Target, Source, C, N)
void *Target;
const void *Source;
int C;
size_t N;
void *memchr ( S, C, N)
const void *S;
int C;
size_t N;
int memcmp (Target, Source, N)
const void *Target, *Source;
size_t N;
void *memcpy (Target, Source, N)
void *Target;
const void *Source;
size_t N;
void *memset (S, C, N)
void *S;
int C;
size_t N;
void *memmove (Target, Source,N)
void *Source;
const void *Target;
size_t N;
errno_t memset_s (s,smax,c,n)
void * s;
rsize_t smax;
int c;
rsize_t n;

Descripción

Las subrutinas memory funcionan en áreas de memoria. Un área de memoria es una matriz de caracteres limitada por un recuento. Las subrutinas memory no comprueban el desbordamiento de ningún área de memoria de recepción. Todas las subrutinas memory se declaran en el archivo memory.h .

La subrutina memccpy copia los caracteres del área de memoria especificada por el parámetro Origen en el área de memoria especificada por el parámetro Destino . La subrutina memccpy se detiene después de que se copie el primer carácter especificado por el parámetro C (convertido al tipo de datos unsigned char ), o después de que se copien los caracteres N , lo que ocurra primero. Si la copia tiene lugar entre objetos que se solapan, el comportamiento no está definido.

La subrutina memcmp compara los primeros N caracteres como el tipo de datos unsigned charen el área de memoria especificada por el parámetro Objetivo con los primeros N caracteres como el tipo de datos unsigned char en el área de memoria especificada por el parámetro Fuente .

La subrutina memcpy copia N caracteres del área de memoria especificada por el parámetro Fuente en el área especificada por el parámetro Objetivo y, a continuación, devuelve el valor del parámetro Objetivo .

La subrutina conjunto de memorias establece los primeros N caracteres del área de memoria especificada por el parámetro S en el valor del carácter C y, a continuación, devuelve el valor del parámetro S .

Al igual que la subrutina memcpy , la subrutina memmove copia N caracteres del área de memoria especificada por el parámetro Origen en el área especificada por el parámetro Destino . Sin embargo, si las áreas de los parámetros Origen y Destino se solapan, el movimiento se realiza de forma no destructiva, procediendo de derecha a izquierda.

La subrutina memccpy no está en la biblioteca C de ANSI.

La subrutina memset_s copia el valor de c (convertido en un carácter sin signo) en cada uno de los primeros n caracteres del objeto apuntado por s. A diferencia de conjunto de memorias, cualquier llamada a la función memset_s se evalúa de acuerdo con las reglas de la máquina abstracta y considera que la memoria indicada por s y n podría ser accesible en el futuro y que contiene los valores indicados por c.

Restricciones de tiempo de ejecución

  1. Para la subrutina memset_s , el parámetro s no debe ser un puntero nulo. smax o n puede ser mayor que RSIZE_MAX, pero n no puede ser mayor que smax.
  2. Si hay una violación de restricción de tiempo de ejecución y s no es un puntero nulo y smax no es mayor que RSIZE_MAX, la subrutina memset_s almacena el valor de c (convertido en un carácter sin signo) en cada uno de los primeros smax caracteres del objeto apuntado por s.

Parámetros

Elemento Descripción
Destino Apunta al inicio de un área de memoria.  
Origen Apunta al inicio de un área de memoria.  
C Especifica un carácter para buscar.  
N Especifica el número de caracteres a buscar.  
O Apunta al inicio de un área de memoria.  
s Especifica el almacenamiento intermedio de destino para la copia.  
c Especifica el valor que se va a copiar.  
smáx Especifica el número máximo de caracteres que se pueden copiar.  
n Especifica el número de caracteres que se van a copiar.  

Valores de retorno

La subrutina memccpy devuelve un puntero al carácter C después de copiarlo en el área especificada por el parámetro Destino , o un puntero nulo si el carácter C no se encuentra en los primeros N caracteres del área especificada por el parámetro Origen .

La subrutina memchr devuelve un puntero a la primera aparición del carácter C en los primeros N caracteres del área de memoria especificada por el parámetro S , o un puntero nulo si no se encuentra el carácter C .

La subrutina memcmp devuelve los valores siguientes:

Elemento Descripción
Menor que 0 Si el valor del parámetro Destino es menor que los valores del parámetro Origen .
Igual a 0 Si el valor del parámetro Destino es igual al valor del parámetro Origen .
Mayor que 0 Si el valor del parámetro Destino es mayor que el valor del parámetro Origen .

La subrutina memset_s devuelve cero si no hay ninguna violación de restricción de tiempo de ejecución. De lo contrario, se devuelve un valor distinto de cero.