wie funktioniert fork()

Post Reply
Message
Author
Systemmaus
Posts: 1
Joined: 06. Feb 2007 12:21

wie funktioniert fork()

#1 Post by Systemmaus »

Hallo zusammen,

ich muss folgende Aufgabe lösen:

Welche Welche Ausgabe erzeugt das folgende Programm?

#include <stdio.h>
#include <unistd.h> // wg. getpid
int x = 0;
int main()
{
fork();
fork();
fork();
printf("pid=%d x=%d\n", getpid(), x++);
}

ich würde sagen, es werden 4 Prozesse erzeugt (1 Vater und 3 Kinder) und es wird nur ein pid ausgegeben. x = 1
Oder werden es eigentlich 8 Prozesse erzeugt, da jedes Kind auch geklont wird???? Werden dann auch 8 pid ausgegeben???

Ich wollte das Programm unter Windows testen, leider funktioniert das nicht und mein Linux-Rechner ist zur Zeit defekt.

Ich würde für jede Antwort dankbar!

Gruß

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#2 Post by klopskuchen »

fork();
Vater
Kind_1
fork();
Vater, Kind_1
Kind_2 , Kind_1_1
fork();
Vater, Kind_1, Kind_2, Kind_1_1
Kind_3, Kind_1_1, Kind_2_1, Kind_1_2

Macht nach drei fork()-Aufrufen acht Prozesse (einschl. erster Vater), nach vier Aufrufen sechzehn, nach fünf Aufrufen 32 ...
When all else fails, read the instructions .

Post Reply