【发布时间】:2009-11-11 08:29:57
【问题描述】:
问:我正在尝试更新一个文件 放置,通过使用
fopen模式"r+", 读取某个字符串,然后写入 返回一个修改过的字符串,但它不是 工作。A: 一定要先致电
fseek你写,既要寻回 您正在尝试的字符串的开头 覆盖,并且因为fseek或fflush之间始终需要 读写中的读/写 “+”模式。
我的问题是为什么fseek 或fflush 在读/写“+”模式下的读和写之间总是需要?第 5.2 节
安德鲁·科尼格
C Traps and Pitfalls (1989) 提到这是因为向后兼容性问题。谁能详细解释一下?
【问题讨论】:
-
“c 陷阱和陷阱”已经超过 20 年了 - 你真的需要向后兼容 20 年前的东西吗?
-
即使这本书已有 20 年历史,这些规则仍然有效。
-
注:此要求的C标准相关章节为C11 7.21.5.3/7