在unix-like os上,可以不去考虑C语言的标准库中的标志b,这个标志没有任何作用。
在win上,b标志的作用是很明显的。当用fopen("w")打开文件,且向文件中写入0x0a时会多写一个字符0x0d。而在使用fopen("wb")时则不会。
按二进制写文件指的是直接按照数据在内存中的表现形式写入文件。例如,如果int型数据在内存中用 4 个字节表示,则写这个int数据的时候直接把对应的内存中 4 个字节的内容写入文件。在此过程中数据不需要做任何转换,所以效率较高。
数据有字符型和非字符型(数)两种。按文本方式写文件指的是将数据转换为对应的字符型数据之后再写入文件。对于字符型数据,由于其本身就是ASCII码字符,一般不必转换,直接写入文件。但是,由于不同的系统对于换行符('\n')有不同的处理(转换)方式,在有的系统(如Windows)下也会对 '\n' 作适当的转换。
阅读(336) | 评论(0) | 转发(0) |