C语言中文件的读写实际过程

刚刚学到C语言现在学到了对文件的读写,有个问题不明白,就是如果以rb(也就是二进制方式)方式建立一个文件,这时从键盘上输入一个字符串,想把字符串输入到磁盘中保存(以二进制的方式保存)。我想知道这具体存储情况,就是这个字符串(ASCII文件)是在哪里转化为二进制文件的?是从键盘输入到内存(缓冲区)时转化的还是,从内存(缓冲区)写入磁盘时转化的?
请各位大虾们说的详细点,我是半路出家,不是计算机专业的,但是ASCII与二进制的区别我知道,可以不说或是略谈,谢谢了

RB和R本质上是二进制数据流,但用于文本的二进制数据的含义是ASCII或其他内部代码。与Rb/WB的一个重要区别是,R/W的文本换行格式在不同的系统上是不同的(DOS/windows下的回车字符Cr('\R')+换行字符LF('\n')、UNIX/Linux下的LF和MAC下的Cr),这导致文件操作的某些细节不同(如fputs和fprintf对字符串结尾的处理)。
具体的读写实现由库函数处理,WB/RB模式一般采用缓冲区读写,最终实现对外部内存文件或其他输入/输出流的抽象(包括在内存中建立缓冲区)在此基础上,w/R模式处理了上述一些差异。通常,缓冲区的操作取决于库函数的实现,用户看不到库函数,因为它是不必要的(无法保证不同平台的实施是一致的)。
对于标准输入设备,如键盘,它被抽象为标准输入流stdin。除了抽象过程本身(由底层系统实现)之外,实现方法与从外部存储文件读取没有本质区别。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-28
特定的读写实现由库函数处理。WB/RB模式一般采用缓冲区读写,最终实现对外部内存文件或其他输入/输出流的抽象(包括在内存中建立缓冲区)。在此基础上,w/R模式处理上述一些差异。通常,缓冲区的操作取决于库函数的实现。用户无法看到库函数,因为它是不必要的(不能保证不同平台的实现是一致的)。
第2个回答  2021-11-29
RB和R本质上是二进制数据流,但用于文本的二进制数据的含义是ASCII或其他内部代码。与Rb/WB的一个重要区别是,R/W的文本换行格式在不同的系统上是不同的(DOS/windows下的回车字符Cr('\R')+换行字符LF('\n')、UNIX/Linux下的LF和MAC下的Cr),这导致文件操作的某些细节不同(如fputs和fprintf对字符串结尾的处理)。
具体的读写实现由库函数处理,WB/RB模式一般采用缓冲区读写,最终实现对外部内存文件或其他输入/输出流的抽象(包括在内存中建立缓冲区)在此基础上,w/R模式处理了上述一些差异。通常,缓冲区的操作取决于库函数的实现,用户看不到库函数,因为它是不必要的(无法保证不同平台的实施是一致的)。
对于标准输入设备,如键盘,它被抽象为标准输入流stdin。除了抽象过程本身(由底层系统实现)之外,实现方法与从外部存储文件读取没有本质区别。
====
[原始答复小组]
第3个回答  2021-11-27
RB和R本质上是二进制数据流,但用于文本的二进制数据的含义是ASCII或其他内部代码。与Rb/WB的一个重要区别是,R/W的文本换行格式在不同的系统上是不同的(DOS/windows下的回车字符Cr('\R')+换行字符LF('\n')、UNIX/Linux下的LF和MAC下的Cr),这导致文件操作的某些细节不同(如fputs和fprintf对字符串结尾的处理)。
具体的读写实现由库函数处理,WB/RB模式一般采用缓冲区读写,最终实现对外部内存文件或其他输入/输出流的抽象(包括在内存中建立缓冲区)在此基础上,w/R模式处理了上述一些差异。通常,缓冲区的操作取决于库函数的实现,用户看不到库函数,因为它是不必要的(无法保证不同平台的实施是一致的)。
对于标准输入设备,如键盘,它被抽象为标准输入流stdin。除了抽象过程本身(由底层系统实现)之外,实现方法与从外部存储文件读取没有本质区别。
第4个回答  2021-11-30
RB和R本质上是二进制数据流,但用于文本的二进制数据的含义是ASCII或其他内部代码。R/W和Rb/WB之间的一个重要区别是,R/W的文本换行格式在不同的系统上是不同的(DOS/windows下的回车字符Cr('\R')+换行字符LF('\n')、UNIX/Linux下的LF和MAC下的Cr),这导致文件操作的细节不同(例如,通过fput和fprintf处理字符串的结尾)。
具体的读写实现由库函数处理,WB/RB模式一般采用缓冲区读写,最终实现对外部内存文件或其他输入/输出流的抽象(包括在内存中建立缓冲区)。在此基础上,w/R模式处理了上述一些差异。通常,缓冲区的操作取决于库函数的实现。用户无法看到库函数,因为它是不必要的(无法保证不同平台的实现是一致的)。
对于标准输入设备,如键盘,它被抽象为标准输入流stdin。除了抽象过程本身(由底层系统实现)外,实现方法与从外部存储文件读取之间没有本质区别。
相似回答