Проблема открытия файла со многими процессами в C - PullRequest
0 голосов
/ 18 августа 2010

Я работаю в c ++. У меня проблема при запуске приложения, в котором есть моя dll-код. Мой dll-код подходит для приложения (необходим процесс). Я написал файл журнала (xml-файл) во всем приложении, используя fopen в все функции (источник DLL), здесь я получаю исключение типа «не может получить доступ к файлу, из-за использования другим процессом». Пожалуйста, помогите мне, как можно управлять файлом, где одновременно может использоваться только один процесс ...

1 Ответ

2 голосов
/ 18 августа 2010

Если вы не используете разные файлы для каждого процесса, который использует вашу DLL, проблема в том, что у вас есть потенциал для нескольких процессов, пытающихся получить доступ к одному и тому же ресурсу.

Вы должны сделать одно из следующих действий:

  1. Измените свой код, чтобы он использовал
    отдельный файл для каждого звонка
    процесс.
  2. Измените его так, чтобы оно использовало
    семафоры, мьютексы или критические
    разделы и состояния ожидания для контроля доступ к файлу.
  3. Или переписать свою DLL так, чтобы она работала как процесс сам по себе и непосредственно контролирует данные, передаваемые ему поместить в файл.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...