1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#define _POSIX_SOURCE #define _XOPEN_SOURCE #include <sys/types.h> void *memmove(void *dst, const void *src, size_t count) { char *a = dst; const char *b = src; if (src!=dst) { if (src>dst) { while (count--) *a++ = *b++; } else { a+=count-1; b+=count-1; while (count--) *a-- = *b--; } } return dst; }