Quote:
Originariamente inviato da MEMon
Per fare comunicare padre e figlio posso sia usare le pipe che mettere in comune aree di memoria con i puntatori vero?
|
Con le pipe certamente. Con aree di memoria no .... a meno di usare le funzioni apposite per la gestione dei "shared memory segment" (vedi le funzioni shmget/shmctl/shmat/shmdt).
Tieni presente che quando fai fork(), i due processi padre e figlio effettivamente hanno la stessa "visione" dello spazio di indirizzamento ma la cosa è dovuta solo ad una questione di ottimizzazione. Viene usata la tecnica del
copy-on-write (vedi
<qui>), in pratica le pagine logiche di padre e figlio sono condivise ma alla prima scrittura da parte di uno dei due, la pagina viene duplicata (e quindi separata tra padre e figlio).
Per tale motivo non ci può essere comunicazione "diretta" tramite la memoria tra padre e figlio.