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_ANONnon 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_SHAREDpersistono i dati (e MAP_ANONpreclude la persistenza). C'è un esempio completo nella sezione Rationale della specifica di shm_open().