|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Roma
Messaggi: 806
|
[C - Unix] uso di mmap()
Devo usare mmap() per gestire files di grosse dimensioni (> 2Gb) direttamente in memoria.
Tuttavia non capisco come si deve usare. 1) Ho una applicazione che mappa il file, in memoria, in sola lettura. Uso i seguenti parametri: Codice:
fpm = mmap (NULL, FileLen, PROT_READ, MAP_PRIVATE, fd, 0); 2) Ho una seconda applicazione che deve leggere e SCRIVERE. Quindi faccio: Codice:
fpm = mmap (NULL, FileLen, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); Vi chiedo: ho capito male io, oppure l'unico modo per SCRIVERE nel file mapped è usare MAP_SHARED, oltre che PROT_WRITE? Pensavo di utiolizzare la modalità MAP_PRIVATE in quanto non ho la necessità di condividere i dati nel file con altri processi. Il file viene elaborato solo da un processo. Penso, e correggetemi se sbaglio, usando MAP_SHARED viene allocata memoria sullo swap file (come avviene per le SHARED MEMORY) anziché nel data segment del processo. Spero di venire illuminato da chi ha utilizzato questa funzione. :-) Grazie |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:13.



















