Discussione:
Variabili condivise tra padre e figli
(troppo vecchio per rispondere)
Sigi
2004-01-15 10:39:58 UTC
Permalink
Avendo vari processi creati con una fork(), è possibile mantenere delle
variabili che siano in comune per tutti i processi, evitando di usare pipe,
fifo, e segnali per comunicare?
Intendo dire che se modifico una variabile nel padre, è possibile che il
figlio veda questa modifica?


tnx
--
SigiTM
Togli 'NOSPAMMM' per rispondermi.
Visita il sito dei Metal Detector: http://listen.to/metaldetector
Yan
2004-01-15 11:21:00 UTC
Permalink
Post by Sigi
Avendo vari processi creati con una fork(), è possibile mantenere delle
variabili che siano in comune per tutti i processi, evitando di usare pipe,
fifo, e segnali per comunicare?
Intendo dire che se modifico una variabile nel padre, è possibile che il
figlio veda questa modifica?
tnx
Puoi provare ad usare la memoria condivisa "shared mem" sotto Linux.
Y
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Sigi
2004-01-16 01:40:54 UTC
Permalink
Post by Yan
Puoi provare ad usare la memoria condivisa "shared mem" sotto Linux.
Cioè? Puoi dirmi di più o indicarmi un link sull'argomento?



tnx
--
SigiTM
Togli 'NOSPAMMM' per rispondermi.
Visita il sito dei Metal Detector: http://listen.to/metaldetector
Roberto Divia
2004-01-16 15:44:43 UTC
Permalink
Post by Sigi
Post by Yan
Puoi provare ad usare la memoria condivisa "shared mem" sotto Linux.
Cioè? Puoi dirmi di più o indicarmi un link sull'argomento?
Il padre crea un segmento di memoria condivisa e ci mette una struttura
volatile con i campi che vanno condivisi. Poi forka. A partire da quel
punto padre e figlio accedono alle stesse locazioni usando i loro
puntatori. Un poco di sincronizzazione potrebbe essere richiesta per
evitare accessi concorrenti, altrimenti e` un gioco da ragazzi. Esistono
altri metodi per creare/mappare, probabilmente piu' complessi...

Mi sembra di ricordare che lo Stevens dava qualche esempio, ma non molto.
Cerca in rete per "shmem"... Troverai esempi a iosa.

Ciao,
--
Roberto Divia` Love at first sight is one of the greatest
============= labour-saving devices the world has ever seen.
Mailbox: C02110 CERN-European Organization for Nuclear Research
E-mail: ***@cern.ch CH-1211 GENEVE 23, Switzerland
Carmine Noviello
2004-01-17 19:12:41 UTC
Permalink
Post by Sigi
Post by Yan
Puoi provare ad usare la memoria condivisa "shared mem" sotto Linux.
Cioè? Puoi dirmi di più o indicarmi un link sull'argomento?
tnx
man mmap
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Andrea
2004-01-16 13:27:46 UTC
Permalink
Post by Sigi
Avendo vari processi creati con una fork(), è possibile mantenere delle
variabili che siano in comune per tutti i processi, evitando di usare pipe,
fifo, e segnali per comunicare?
Intendo dire che se modifico una variabile nel padre, è possibile che il
figlio veda questa modifica?
Sono un ignorante in materia, ma i thread non potrebbero fare al caso tuo?
Simone Piccardi
2004-01-27 13:19:56 UTC
Permalink
Post by Andrea
Sono un ignorante in materia, ma i thread non potrebbero fare al caso tuo?
Non sono la stessa cosa, e non si usa comunque fork, e sono
intrinsecamente meno sicuri.

Per condividere della memoria ci sono le primitive di IPC SysV e quelle
POSIX. Una descrizione la trovi oltre che in man shmem e man shm_open (e
altre pagine li' referenziate) sul capitolo dodici di GaPiL
(gapil.firenze.linux.it).

Ciao
Simone

Continua a leggere su narkive:
Loading...