Updated: April 19, 2023 |
Copy bytes from one buffer to another, handling overlapping memory correctly
#include <string.h> void* memmove( void* dst, const void* src, size_t length );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The memmove() function copies length bytes from the buffer pointed to by src to the buffer pointed to by dst. Copying of overlapping regions is handled safely. Use memcpy() for greater speed when copying buffers that don't overlap.
A pointer to the destination buffer (that is, the value of 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; }
produces the output:
WWorld
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | Yes |
Signal handler | Yes |
Thread | Yes |