#include #include #include #include #define N 10 /* number of child processes */ int main() { for (int i = 1; i <= N; ++i) { pid_t child = fork(); if (child == -1) { perror("unable to fork"); exit(1); } if (child == 0) { /* child process */ _exit(i); } } /* parent process */ pid_t child; int stat; int sum = 0; while ((child = wait(&stat)) >= 0) { if (WIFEXITED(stat)) { sum += WEXITSTATUS(stat); } else { printf("child %d terminated abnormally\n", (int) child); } } printf("sum = %d\n", sum); }