ipc - Kan jeg have en hukommelseskartet fil, kortlagt til to eller flere processer på samme tid (windows)?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skal have to processer dele information via en hukommelseskartet fil. En af dem vil kun læse til filen, og den anden kommer kun til at skrive til den.
Er det OK for mig bare at lade filen altid kortlægges til de to processer? Jeg er i øjeblikket:



  1. kortlægning af filen til læseren processen

  2. Skrivning

  3. Afkortning af filen

  4. Kortlægning af filen til forfatterprocessen

  5. læsning

  6. afmapping



Og gentage igen og igen hver gang jeg har brug for processerne til at dele information. Min bekymring er, at alle disse opkald til kort og unmap kan være dyre. Skal jeg beholde filen kortlagt til begge processer hele tiden? Jeg kunne regulere adgangen til den delte hukommelse gennem mutexes.


Hvad er den bedste måde at gøre denne slags opgave på?

Bedste reference


Du behøver ikke at omkaste filen efter læsning eller skrivning. Windows garanterer, at dataene 'synlige' i kortlægningen i to processer vil være de samme, når den lokale fil er kortlagt på en computer.

Andre referencer 1


Hvis du har brug for dette gentagne gange, skal du vedligeholde kortlægningen. Ikke optimalt optimalt. (Hvis du finder der er problemer, kan du gå tilbage og rette dem på det tidspunkt.) [1]