memmove()

Копировать из одной области памяти в другую с корректной обработкой перекрывающейся памяти

Прототип:

#include <string.h>
void * memmove( void *dst,
const void *src,
size_t length );

Аргументы:

dest
Указатель на буфер, куда необходимо скопировать данные.
src
Указатель на буфер, из которого необходимо скопировать данные.
length
Размер копируемых данных.

Библиотека:

libc

Описание:

Функция memmove() копирует length байт из буфера src в буфер dst. Копирование перекрывающихся областей выполняется безопасно. Используйте memcpy() для более быстрого копирования в случаях, когда буферы гарантированно не перекрываются.

Возвращаемое значение:

Указатель на буфер dst.

Примеры:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main( void )
{
char buffer[80];
strcpy( buffer, "World");
memmove( buffer + 1, buffer, 79 );
printf( "%s\n", buffer );
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out WWorld

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

memccpy(), memchr(), memcmp(), memcpy(), memicmp(), memset(), wmemmove()




Предыдущий раздел: Описание API системной библиотеки