Question: Can I use C to know whether a file operation is performed (and where it is performed) on the disk at run time?

Answer: 
`memcpy()` doesn't have any special handling for overlapping buffers so it lacks some checks therefore it is faster than `memmove()`.

Also on some architectures `memcpy()` can benefit from using CPU instructions for moving blocks of memory - something that `memmove()` cannot use.
On some ARM platform im working on, memmove was 3 times faster than memcpy for short unalligned load. As memcpy and memmove are the only truly portable type-punning mechanism, you would have thought that the would be some check by the compiler before trying to use the NEON to do it.