Dos文件格式与Unix格式转换:dos2unix,fromdos,todos

Dos文件格式与Unix格式转换工具:

dos2unix,fromdos,todos



UNIX、DOS文件格式的区别:

在Windows下回车符是\r\n回车换行 (0x0D 0x0A)
在Linux下回车符是\n (0x0A)


  fwrite写文件测试。先指定参数为wb,表示二进制格式,写入0x00-0xff共256个数,包括了ASCII码表中的所有值。    代码如下:

[cpp]  view plain copy
  1. int main()  
  2. {  
  3.     char aa[256];  
  4.     int i;  
  5.     for (i=0; i<256; i++)  
  6.     {  
  7.         aa[i] = i;  
  8.     }  
  9.     FILE *wr;  
  10.     wr=fopen("asd.txt","wb");  
  11.     if (wr==NULL)  
  12.     {  
  13.         printf("wrong!\n");  
  14.         return(1);  
  15.     }  
  16.   
  17.     fwrite(aa,1,256,wr);  
  18.     fclose(wr);  
  19.          return 0;  
  20. }  

      得到的结果没有问题。文件属性显示大小确实为256字节。用UltraEdit来看,提示是否转为DOS格式,选择否,然后看到的结果也是正确的。

                                         

                                                                图1                                                                                                                           图2

      不过,用UltraEdit打开的时候,提示是否转为DOS格式,如果选择是,就不是图2的结果了,而是图3:

                                              

                                                                                                                                          图3
       文件属性也显示,文件大小为257个字节。仔细检查,发现在0x09和0x0A之间多了一个0x0D。而其他地方则是一样的。在上面的测试代码中,将二进制模式"wb"改为文本模式"wt",或者不指定模式(默认为文本模式),则得到的结果也是图3的形式。

[cpp]  view plain copy
  1. wr=fopen("asd.txt","wt");  

      因此,可以总结如下:

       1.  fwrite函数,加上b表示二进制模式;不加或者加上t表示文本模式。

       2.  fwrite用二进制模式写文件时,原样写入;文本模式写文件时,遇到换行符(0x0A,10,\n,LF,line feed),会在前面插入一个回车符(0x0D,13,\r,CR,carriage return)。

      3. 另外,最好fread与fwrite相对应,统一采用文本模式或二进制模式。fread遇到\r\n,即0D0A时,会解释为0A。

      这只是在windows系统下如此。关于文件格式,有一段资料非常经典

http://linux.chinaunix.net/techdoc/system/2009/07/17/1124903.shtml

以及

http://shx-yi123.iteye.com/blog/750717

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值