小议回车和换行

最近写一个网络分析的玩意,用RAW_SOCKET从网卡上面直接取出数据帧,然后解析,为了就是找出tftp包。解析到数据内容的时候,把数据写出到文件里面,是用fprintf()直接写进去的,结果发现每次自己生成的文件都比原来的文件大。比如原文件是100bytes,获取到的文件可能是108字节。

先用diff 查看,发现竟然每行都显示不同,可是我进去vim编辑的时候,看上去都是一样的。

 hexdump  -C 查看,总算知道不一样的地方了。

linux上都是以‘\n’来表示换行的,ascii码是0A,表示LR,netascii表示数据都是以成行的ASCII码字符组成的,以两个字节---回车字符后换行(CR/LF,0D/0A)表示行结束。这两个行结束的字符在这种格式和本地主机使用的行定界之间进行转化。而octet则将数据看作8bit一组的字节流而不做解释。

标签:Linux, NetWork

评论已关闭