![fgetc、fputc 和 gcc 编译的可靠性如何?](https://linux22.com/image/1537759/fgetc%E3%80%81fputc%20%E5%92%8C%20gcc%20%E7%BC%96%E8%AF%91%E7%9A%84%E5%8F%AF%E9%9D%A0%E6%80%A7%E5%A6%82%E4%BD%95%EF%BC%9F.png)
我感兴趣的是,像下面这样的程序如何忠实地复制自身:
fgetc(sourcefile) 读取源文件。
fputc(daughterfile) 写入新的源文件。
gcc 编译子文件。
我可以对这两个文件(原始文件和子文件)运行 diff/cmp,但得到的结果不尽相同。diff 表示它们完全相同,cmp 给出了它们的差异的长列表,但我认为这可能是因为名称不同,并且这些名称正在被编译到可执行文件中。
当然,这些程序在多次重复后应该完全相同,但我想知道是否有人可以向我指出一个讨论,让我知道上述过程导致数据损坏的频率。
(顺便说一下,我感兴趣的是任何更改,即使这些更改不会直接干扰代码的执行。基本上,任何对文件进行的更改都是我无意的。