/****************************************/ /* */ /* Prof. Dr. Carsten Vogt */ /* TH Koeln, Fakultaet IME */ /* http://www.nt.th-koeln.de/vogt */ /* */ /* UNIX-C-Schnittstelle: */ /* fork(): Getrennte Speicherbereiche */ /* bei Vater und Sohn */ /* */ /****************************************/ #include #include #include int main() { int i = 1; /* Nach der Ausfuehrung von fork() besitzen Vater und Sohn jeweils eine EIGENE Variable i. Sie hat bei beiden zunaechst den Wert 1. */ printf("\n"); if (fork()==0) { printf("i im Sohn: %d\n\n",i); /* Ausgabe: 1 */ i = 2; /* Zuweisung betrifft nur die i-Variable des Sohns, NICHT die des Vaters. */ printf("i im Sohn: %d\n\n",i); /* Ausgabe: 2 */ exit(0); } sleep(2); /* blockiert Vater fuer 2 Sek. */ printf("i im Vater: %d\n\n",i); /* Ausgabe: 1, denn: Zuweisung im Sohn betrifft nur die i-Variable des Sohns, das i des Vaters bleibt unveraendert. */ }