C中多个进程的文件打开问题

发布于 2024-09-14 17:15:42 字数 185 浏览 20 评论 0原文

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

Iam working in c++ .i have an problem while run an application ,which have my dll within it ,My dll code is suitable to application (needed process).i wrote a log file (xml file) throughout application using fopen within all function(dll source) ,here i receive exception like "cannot access the file ,due to using by another process." .please help me ,how can manage a file ,where can use only one process at a time...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

李不 2024-09-21 17:15:42

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

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

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

Unless you are using a different file for each process that uses your DLL then the problem is that you have the potential for multiple processes trying to access the same resource.

You should do one of the following:

  1. Change your code so that it uses a
    separate file for each calling
    process.
  2. Change it so that it uses
    semaphores, mutexes or critcial
    sections and wait states to control
    access to the file.
  3. Or rewrite your DLL so that it runs
    as a process in its own right and
    directly controls data passed to it
    to place into the file.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文