Могу ли я иметь отображенный в памяти файл, сопоставленный двум или более процессам одновременно (окнам)? - PullRequest
0 голосов
/ 13 марта 2012

Мне нужно, чтобы два процесса обменивались информацией через отображенный в памяти файл.Один из них будет только читать в файл, а другой только будет писать в него.Это нормально для меня, просто оставить файл всегда сопоставленным с этими двумя процессами?Я в настоящее время:

  1. сопоставление файла с процессом чтения
  2. Запись
  3. Отображение файла
  4. Отображение файла в процессе записи
  5. чтение
  6. Unmapping

И повторение снова и снова каждый раз, когда мне нужны процессы для обмена информацией.Меня беспокоит то, что все эти вызовы map и unmap могут быть дорогими.Должен ли я сохранить файл, сопоставленный с обоими процессами все время?Я мог бы регулировать доступ к разделяемой памяти через мьютексы.

Каков наилучший способ выполнить такую ​​задачу?

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

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

1 голос
/ 13 марта 2012

Если вам нужно сделать это несколько раз, сохраните соответствие. Не преждевременно оптимизировать . (Если вы обнаружите, что есть проблемы, вы можете вернуться и исправить их в это время.)

...