我感兴趣的是,像下面这样的程序如何忠实地复制自身:
fgetc(sourcefile) 读取源文件。
fputc(daughterfile) 写入新的源文件。
gcc 编译子文件。
我可以对这两个文件(原始文件和子文件)运行 diff/cmp,但得到的结果不尽相同。diff 表示它们完全相同,cmp 给出了它们的差异的长列表,但我认为这可能是因为名称不同,并且这些名称正在被编译到可执行文件中。
当然,这些程序在多次重复后应该完全相同,但我想知道是否有人可以向我指出一个讨论,让我知道上述过程导致数据损坏的频率。
(顺便说一下,我感兴趣的是任何更改,即使这些更改不会直接干扰代码的执行。基本上,任何对文件进行的更改都是我无意的。