Question
Run the following program and take a screenshot of the result . Explain the relationship between the created processes. (Hint: if we draw an arrow
Run the following program and take a screenshot of the result . Explain the relationship between the created processes. (Hint: if we draw an arrow that points from a process to its child process, what shape can we get?) #include < sys/types.h > #include < stdio.h > #include < unistd.h > int main (int argc, char *argv[]) { pid_t childpid = 0; int i, nbrOfProcesses; if (argc != 2) { /* Check for valid number of command - line arguments */ fprintf(stderr, "Usage: %s \ n", argv[0]); return 1; } / * Convert character string to integer */ nbrOfProcesses = atoi(argv[1]); for (i = 1; i < nbrOfProcesses; i++) { childpid = fork() ; if ( childpid == - 1 ) { p rintf ("Fork failed"); exit(1); } else if ( childpid != 0 ) // True for a parent break; } // End for // Each parent prints this line fprintf(stderr, "i: %d process ID: %4ld parent ID: %4ld child ID: %4ld \ n", i, (long) getpid (), (long) getppid (), (long)childpid); sleep(5); // Sleep five seconds return 0; } // End main
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started