// // Written for Computer Networks and Systems lab classes // AUTHOR : Sergiusz Warga #include #include #include #include void child_task() { printf("I am a child\n"); } void print_pids() { printf("My PID is %d\nMy parent's PID is %d\n", getpid(), getppid()); } void print_pids_child() { printf("CHILD\nMy PID is %d\nMy parent's PID is %d\n", getpid(), getppid()); } int main() { pid_t pid; for (int i = 0; i < 5; ++i) { pid = fork(); if (pid == -1) { // If something went wrong. perror("Fork: "); exit(EXIT_FAILURE); } if (pid == 0){ print_pids_child(); exit(EXIT_SUCCESS); } } printf("I am a parent.\n"); print_pids(); sleep(1); // This may be required as the parent process won't wait for the child process to finish its execution. return 0; }