c++ - ifstream 另一个程序正在写入的文件?

标签 c++ windows file ifstream

如果我尝试使用 std::ifstream 打开一个文件,而另一个应用程序正在写入该文件,会发生什么情况?

最佳答案

这取决于用于在其他程序中打开文件的共享模式。如果您使用的打开模式与共享模式兼容,那么您将打开该文件。否则,打开将失败。不过,C++ 并不真正提供“共享模式”,因此您获得的共享模式将是您的供应商的实现碰巧使用的任何模式。如果您真的想要控制打开文件的方式,请使用操作系统提供的函数(在本例中为 CreateFile)。

当来自其他程序的写入生效时,您将能够在您的程序中读取它们。如果您也写入文件,那么您的写入和其他程序的写入可能会相互干扰,导致数据丢失或输出困惑;不要那样做。

关于c++ - ifstream 另一个程序正在写入的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622165/

相关文章:

c++ - Cmake 没有使用正确的 boost 库

c++ - vtkImageData 使用 VTK 的空白单元格或空白点

c# - 获取Windows任务栏中当前可见的应用程序(或Windows)列表

windows - 在 Windows 上使用 Youtube-dl 提取 MP3 的问题

java - FileReader 与 BufferedReader 或 FileInputStream 组合

c++ - 忽略 gcc/clang 的 "-Wmissing-braces"警告是否明智?

c++ - 遍历类模板的显式特化

python - 如何在没有cuda的windows上安装Tensorflow和keras

python - 如何保留包含特定字符串的行并从 .txt 文件中删除其他行?

c# - 图像文件副本,正在被另一个进程使用