When I use command "diff -qr abc/ usb/abc/" to compare 2 directory, it changes the "centos_7_x86_64_Minimal.iso" sometime but the file size didn't change even when I just ran the same command and it says they are the same. Other file are fine, it changes only this iso file.
Also, I wrote a similler program like diff before it came out the same problem. I guess it's a glibc bug? I kept the broken file in case you need it. This problem comes out like once a week, I kept the sha256-code but this problem seems serious.