C语言文件的读写操作

我自己看书有点乱,总结了几句话,但是不知道对还是错,希望大家帮我看看
1.用r或者rb方式打开文件或者是用w、wb打开文件,其差别就在于打开文件的数据的排列方式,也就是说,
对于二进制文件,文件里面的数据按照数据在内存的存储形式原样在磁盘上存放。
对于文本文件,文件里面的数据都划分为一个个字符,存储方式是一个字节对应一个字符。
而无论是文本文件还是二进制文件,都是以字节为单位存储在内存上的
而对于文件的读写呢,分为对二进制文件读写和对文本文件读写,他们两种方式差别仅仅在于换行回车符的问题。也就是说
文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r\n''(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.正因为文本方式有''\n''--''\r\n''之间的转换,其存在转换耗时.二进制读写时其不存在任何转换,直接将写缓冲区中数据写入文件.
就是说,执行fopen函数中的文本文件和二进制文件概念和执行读写函数中的文本文件和二进制文件概念是不同的,前者是磁盘存储方式不同,后者是读写,也就是换行回车符的转换与保留与否问题.
2.关于fread和fwrite函数的理解。在这两个函数中,由于写入和读取都限定字节的长度,所以为了满足各种数据的正确读写和数据完整性,就必须用二进制形式进行打开文件,因为以文本文件形式打开的话,会一个字节对应一个字符,对于已经定义好的字符型数组变量则没多大影响,而对于整型变量则可能出现错误,所以必须用二进制形式
以上就是我本人理解的两点,但是我觉得有很多错误的地方,这也是我烦恼的地方,希望大家可以帮帮忙,谢谢了
你这样理解并没有大的不妥当