c++ - C中有许多进程的文件打开问题

标签 c++ windows file process mutual-exclusion

我在 C++ 中工作。我在运行应用程序时遇到问题,其中包含我的 dll,我的 dll 代码适用于应用程序(需要的进程)。我在整个应用程序中使用 fopen 编写了一个日志文件(xml 文件)所有功能(dll 源),在这里我收到类似“由于另一个进程使用而无法访问文件”的异常。 .请帮助我,如何管理文件,一次只能使用一个进程...

最佳答案

除非您为每个使用您的 DLL 的进程使用不同的文件,否则问题是您有可能让多个进程尝试访问同一资源。

您应该执行以下操作之一:

  1. 更改您的代码,使其使用
    每次调用都有单独的文件
    过程。
  2. 改变它以便它使用
    信号量、互斥量或关键信号量
    部分和等待状态来控制 访问文件。
  3. 或者重写你的 DLL 让它运行 作为一个独立的过程,并且 直接控制传递给它的数据 放入文件。

关于c++ - C中有许多进程的文件打开问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3511755/

相关文章:

java - 如何/何时删除 java 中的文件?

windows - 在 gvim 的新选项卡中打开文件

c++ - win32应用程序、windows窗体应用程序和控制台应用程序有什么区别?

c++ - 通过引用传递值但仍然显示地址而不是值

c++ - C++ 中的多线程......从哪里开始?

windows - 如何转义批处理文件中的符号?

linux - 删除不区分大小写的文件

linux - 如何将匹配的文件移动到另一个目录?

c++ - 从源代码编译虚幻引擎后缺少dxgi.lib

php - 在两个应用程序之间传输大量数据的最快方式