Ho qualche problema con uno dei miei progetti.
Ho cercato di trovare un esempio ben documentato di utilizzo della memoria condivisa con fork()
ma senza successo.
Fondamentalmente lo scenario è che quando l'utente avvia il programma, ho bisogno di memorizzare due valori nella memoria condivisa: current_path che è un char * e un file_name che è anche char * .
A seconda degli argomenti del comando, viene avviato un nuovo processo fork()
e tale processo deve leggere e modificare la variabile current_path archiviata nella memoria condivisa mentre la variabile file_name è di sola lettura.
C'è un buon tutorial sulla memoria condivisa con codice di esempio (se possibile) a cui puoi indirizzarmi?
shmget()
altri. e anche l' mmap()
approccio puro con MAP_ANON
(aka MAP_ANONYMOUS
) - sebbene MAP_ANON
non sia definito da POSIX. C'è anche POSIX shm_open()
e shm_close()
per la gestione degli oggetti di memoria condivisa. [… Continua…]
shm_unlink()
), mentre i meccanismi che utilizzano mmap()
richiedono un file e MAP_SHARED
persistono i dati (e MAP_ANON
preclude la persistenza). C'è un esempio completo nella sezione Rationale della specifica di shm_open()
.