二进制文件和文本文件--我的理解

    文本文件与二进制文件我的体会总结如下:
    1.文本文件与二进制文件的区别存在于逻辑层面上,即文件的编码翻译方式不一,但是在磁盘上的物理文件,都是以二进制形式保存的。
    2.在访问和读写文件时会才会产生两种文件的区分,用文本方式打开,用fgets,fputs之类的文件I/O访问就是文本文件,而用fread/fwrite等文件I/O访问就是二进制文件。
    3.unix和DOS的文本文件的区分在于回车换行,unix是'/n'而DOS则是"/r/n",所以DOS文本输出到控制台时需要把"/r/n"转换成"/n"(控制台回车符是"/n"),而unix则不需要。
    4.为什么unix中使用fopen时,字符b作为type的一部分实际上无用?参考3,这是因为这两种方式在读写文件时的操作是不一样的。二进制方式
很简单,读文件时,会原封不动的读出文件的全部內容,写的時候,也是把內存缓冲区的內容原封不动的写到文件中。而文本方式就不一样了,在读文件时,会将换行符号CRLF(0x0D 0x0A)全部转换成单个的0x0A,并且当遇到结束符CTRLZ(0x1A)时,就认为文件已经结束。相应的,写文件时,会将所有的0x0A换成0x0D0x0A。由于DOS/Windows定义的换行符和C语言的不一致,C语言的标准输入输出函数适行读写文本文件时,就适行了CRLF->LF的转换。而Unix的定义和C语言的是一样的,就不必转换了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值