|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 342
|
condividere variabile tra padre e figlio
ciao a tutti,
stavo smanettando con le fork ed ecco le prime difficoltà supponiamo che abbia la necessità di convidere una variabile tra padre e figlio come posso realizzare una cosa di questo tipo? altra cosa che non è mi molto chiara .. quando viene creato il figlio a questo viene associato il codice sorgente del padre, ora quello che mi chiedo, il figlio riesegue il programma da capo, oppure continua semplicemente ed esegue _SOLO_ la parete dell'if (pid ==0) ? dalle prove che ho fatto direi che riinizia l'esecuzione da capo, ma non ne ho la certezza. ciao Arpeda
__________________
Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No...esegue solo la parte dell'if...
Dipende cosa intendi per condividere una variabile... Se vuoi che un valore calcolato prima delal fork sia utilizzabile anche dal figlio nond evi fare niente... Se vuoi invece condividere il valore anche dopo la fork ci sono tanti metodi, ad esempio le pipe o le zone di memoria in comune in cui allocare quella variabile... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 342
|
vorrei condivedere la variabile anche dopo la fork.
per quanto riguarda il discorso dell'if ... ho pensato che il figlio riesegue tutto da capo perchè ho fatto questa prova: (ti faccio un sunto) Codice:
pid_t pid;
int pippo=0;
int *ptr;
ptr = &pippo;
if ((pid=fork())==0) {
printf("valore nel figlio %d", *ptr);
*ptr = *ptr +1;
printf("valore nel figlio %d", *ptr);
} else {
printf("valore nel padre %d", *ptr);
*ptr = *ptr +1;
printf("valore nel padre %d", *ptr);
}
Qualche dritta è ben accetta grazie Arpeda
__________________
Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì...aree di memoria condivise fra più processi...
La fork fa una copia speculare dello stato attuale del processo nel nuovo processo creato... I puntatori pur contendo lo stesso indirizzo puntano a zone di memoria fisica diverse... Non ti posso consigliare moto perchè non ho mai usato memoria condivisa, ma ho trovato questo link: http://fscked.org/writings/SHM/shm.html |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:53.



















