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.
If you're interested in which will perform better, you need to test it *on the target platform*. Nothing in the standard mandates how the functions are implemented and, while it may seem logical that a non-checking `memcpy` would be faster, this is by no means a certainty.

It's quite possible, though unlikely, that the person who wrote `memmove` for your particular compiler was a certified genius while the poor soul who got the job of writing `memcpy` was the village idiot :-)

Although, in reality, I find it hard to imagine the `memmove` could be faster than `memcpy`, I don't discount the possibility. *Measure, don't guess.*