Dummy commit to test new ssh key
[eleutheria.git] / ipc / fork_mult.c
blobea0385ee4ff9f0455938249677ed69686f418c77
1 /*
2 * Compile with:
3 * gcc fork_mult.c -o fork_mult -Wall -W -Wextra -ansi -pedantic
4 */
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <unistd.h>
9 #include <sys/wait.h>
11 #define NUM_CHILDS 5
13 int main(void)
15 pid_t pid[NUM_CHILDS];
16 int i, retval;
18 for (i = 0; i < NUM_CHILDS; i++) {
19 if ((pid[i] = fork()) < 0) { /* fork error */
20 perror("fork()");
21 exit(EXIT_FAILURE);
24 else if (pid[i] > 0) { /* parent process */
25 wait(&retval);
28 else { /* child process (pid = 0) */
29 printf("Child[%d] = %d\n", i, getpid());
31 /* Break, or else every child will spawn its own children */
32 break;
36 return EXIT_SUCCESS;