工作中有时候要用到包含特殊数据的文件,来解决一些bug。比如Bluetooth中的Obex层传输文件,Server端收到的文件与原文件不匹配,这时就需要一个特殊文件(0x00~0xff的循环)。我们比较原文件与目的文件的二进制内容就可以大体看出为什么会传输出错。
制作这种文件也可C/C++,实验起来也很方便,要不了几行代码。
但是用高级语言更酷,下面是Python的实现:
可以看到,文件的内容是0x00-0xff的循环。这种有规律的数据对调试程序是很有用的。
再改进一下,生成任意大小的文件:
上面的脚本只能做一个字节的循环,如果数据循环是0x0000-0xffff,就不行了,因为内置函数chr只能把0~255的数据转化为字符串。
下面的方法可以生成两个字节组成的递增循环数据: