差异与cmp奇怪的行为

时间:2015-04-05 03:01:27

标签: linux diff cmp

我编写了一个程序,通过根据某个公式(例如char - 3 * 22 + KEY)更改每个字符来对文本文件进行编码/解码。 (不发布在这里,因为它是家庭作业)

所有似乎都按预期工作,因为当我执行编码然后解码操作时,我得到原始文本:

$ cat text.txt
Hello World

./encrypt text.txt out.txt 1

$ cat out.txt
`}%%(8o(+%|

./encrypt out.txt out2.txt -1

$ cat out2.txt
Hello World

问题是,diff和cmp命令都抱怨视觉上相同的文件实际上是不同的:

$ diff -a text2.txt out2.txt
1c1
< Hello World
---
> Hello World


text2.txt rev.txt differ: char 1, line 1

没有尾随空格,但第二个文件以某种方式增加了2个字节。

这可能是什么原因?

更新

解码后的版本总是在开头产生两个\ 0字符

$ od -c final.txt
0000000   \0  \0   H   e   l   l   o       W   o   r   l   d  \n   A  \n
0000020    B  \n   C                                                    
0000023

$ od -c text2.txt
0000000    H   e   l   l   o       W   o   r   l   d  \n   A  \n   B  \n
0000020    C                                                            
0000021

为什么我在文本文件中看不到它们?

0 个答案:

没有答案