memmove — copy memory area


#include <string.h>

void *memmove(void *dest, const void *src, size_t n);


The memmove() function copies n bytes from memory area src to memory area dest. The memory areas may overlap: copying takes place as though the bytes in src are first copied into a temporary array that does not overlap src or dest, and the bytes are then copied from the temporary array to dest.

Return Value

The memmove() function returns a pointer to dest.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
memmove() Thread safety MT-Safe

Conforming to

POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.

See Also

bcopy(3), bstring(3), memccpy(3), memcpy(3), strcpy(3), strncpy(3), wmemmove(3)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at

Referenced By

bcopy(3), bstring(3), memccpy(3), memcpy(3), mempcpy(3), mksh(1), netsniff-ng(8), pmem_memmove_persist(3), pmemobj_memcpy_persist(3), signal-safety(7), stpcpy(3), strcpy(3), stress-ng(1), wmemmove(3).

2017-03-13 GNU Linux Programmer's Manual