【发布时间】:2016-05-21 15:37:26
【问题描述】:
如何检查打开的文件是处于读模式还是写模式,即“r”或“w”?
请注意,该文件是使用fopen 命令打开的,并且必须以标准方式而不是特定于平台的 hack。
编辑 1:
似乎FILE 数据结构是依赖于实现的。获得它的唯一方法必须是在 FILE.flags 变量中,但是在我的 Mingw32 中,它只有 FILE._flags。
【问题讨论】:
-
听起来您对更好的解决方案有疑问。你从哪里得到文件?该代码也可以通过模式吗?
-
@Dani 我知道我有一个更好的解决方案,只需在我的结构中打开模式时存储它。但由于
FILE是基于状态的,它必须在某处存储该信息。 -
您总是可以尝试备份 1 个字符,读取该字符,保存它,再次备份并尝试写入它。我还没有尝试过,但我想到了。
-
@smlq: FILE 界面中没有任何东西需要保存模式,它可以将它传递给操作系统并忘记它。
-
@smlq 在这种情况下,正如您所发现的那样,唯一可移植的方法就是自己存储信息。我希望为您提供更好的解决方案,但在这种情况下,这确实是唯一可以接受的答案。