#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
/* pstree output when trying arbre 5
-+= 52015 yunes ./arbre 5
|-+- 52016 yunes ./arbre 5
| |-+- 52018 yunes ./arbre 5
| | |-+- 52021 yunes ./arbre 5
| | | |--- 52024 yunes (arbre)
| | | |--- 52026 yunes ./arbre 5
| | | |--- 52027 yunes ./arbre 5
| | | |--- 52028 yunes ./arbre 5
| | | \--- 52029 yunes ./arbre 5
| | |--- 52022 yunes ./arbre 5
| | |--- 52023 yunes ./arbre 5
| | \--- 52025 yunes ./arbre 5
| |--- 52019 yunes ./arbre 5
| \--- 52020 yunes ./arbre 5
\--- 52017 yunes ./arbre 5
*/
// warning: no real error handling there...
int main(int argc,char *argv[]) {
int n;
sscanf(argv[1],"%d",&n);
for (int i=0; i<n-1; i++) {
pid_t p = fork();
switch(p) {
case -1:
break;
case 0:
break;
default:
for (int j=0; j<=i; j++) {
switch(fork()) {
case -1: break;
case 0: sleep(10); exit(0);
default: break;
}
}
sleep(10); // test
wait(NULL);
exit(0);
}
}
}