fork
-
Hi,
wie oft wird solaris ausgegeben? warum ist die antwort 8 und nicht 4? kann man das irgendwie grafisch darstellen?
#include main() { int ret; ret=fork();ret=fork();ret=fork();ret=fork(); if(!ret) printf("sun"); else printf("solaris"); }
-
forker schrieb:
Hi,
wie oft wird solaris ausgegeben? warum ist die antwort 8 und nicht 4?
Nach dem ersten fork hast du zwei Prozesse, die dann jeweils beide das zweite fork durchführen, und so weiter.
kann man das irgendwie grafisch darstellen?
Ja.
-
jedes fork hat 2 returns:
- return from child
- return from parentfork fork fork fork fork / \ fork fork fork fork fork fork fork / \ fork fork / \ / \ fork fork fork fork fork fork fork fork fork / \ fork fork / \ / \ fork fork fork fork / \ / \ / \ / \ fork fork fork fork fork fork fork fork
d.h. solaris wird 8 mal ausgegeben?