mad*_*erd 1 filesystems c files
我正在阅读 C 编程语言(第二版)。在第 157 页和第 158 页,作者给出了fopenUnix 系统中的代码片段。在代码片段的末尾,作者补充道:
fopen
特别是,我们fopen不能识别表示二进制访问的“b”,因为它在 UNIX 系统上没有意义,也不能识别允许读取和写入的“+”。
为什么作者说它没有意义?(这里提到的“b”和“+”是文件访问方式)
Ste*_*itt 8
一些非 Unix 系统以不同的方式处理二进制文件和文本文件。例如,在 DOS、Windows 和 OS/2 下(fopen设计时并不相关,但可作为有用的示例),以文本模式打开文件并写入文件会将行尾从“C”约定转换 ( \n)无论平台需要什么。在其他系统上,以二进制模式打开文件将使其在记录中进行处理。这就是fopen“b”标志控制:没有它打开的文件以文本模式打开,用它打开的文件以二进制模式打开。由于 Unix 风格的系统没有这种区别,“b”被忽略(并且不会导致错误)。
\n
我这本书的副本没有提到“+”,但我猜fopen当时不支持它(现在支持)。
归档时间:
7 年,8 月 前
查看次数:
137 次
最近记录: