aaaaaaaaaaaarrrrrrrrrggggghhhhhVVoVe:
ma che bestia nera è la fork()?
cosa fa con la memoria?
guardate questo pezzo di codice e ditemi (se potete):
- se io sono pazzo
- se il mio portatile è pazzo
- perchè succede questo
codice:using namespace std; #include<iostream> int main(){ int pid1; int i=0; pid1=getpid(); fork(); while(1){ sleep(1); if(pid1==getpid()){ i++; cout<<"processo 1:"<<&i<<" = "<<i<<endl; }else{ cout<<"processo 2:"<<&i<<" = "<<i<<endl; } } return 0; }
output del programma:
?????? setssi indirizzi di memoria e valori differenti?codice:nik600@criminal:~/rete$ ./a.out processo 2:0xbffff9a0 = 0 processo 1:0xbffff9a0 = 1 processo 2:0xbffff9a0 = 0 processo 1:0xbffff9a0 = 2 processo 2:0xbffff9a0 = 0 processo 1:0xbffff9a0 = 3 processo 2:0xbffff9a0 = 0 processo 1:0xbffff9a0 = 4 processo 2:0xbffff9a0 = 0 processo 1:0xbffff9a0 = 5
come faccio a vedere il valore (aggiornato dal thread a) con una chiamata da parte del thread b?

VVoVe:
Rispondi quotando