Also warum da 8 rauskommen soll kann ich dir nicht erklären, ich hab den Code mal getestet und bei mir kommen 16 Prozesse raus (das deckt sich auch mit meiner Erwartung).
Überleg dir einfach mal was der fork befehl macht und was dann in jedem einzelnen Prozess passiert.
Das printf funktioniert nicht, weil die Ausgaben von printf gebuffert werden und erst ausgegeben wenn ein newline in stdout geschrieben wird. Da bei deinen printfs kein newline vorkommt, wird es deswegen nicht direkt ausgegeben. Würde das Programm zuende laufen würde es dann auch ausgegeben, da du aber ne endlosschleife hast kommt es nie so weit. Einfach mal das while(1) ganz rauslassen und du wirst sehen, dass die ausgabe erscheint.
Ja, entschuldige. Ich habe bisschen herumprobiert. Ich habe die Schleife geändert. In der Klausur stand dort i < 3.
Werde jetzt mal der Beschreibung von Spider nachgehen, danke soweit.
Ich hoffe ich verstehe das jetzt..
PS: natürlich gibt es mit \n nun endlich auch eine Ausgabe