Question
#include #include #include int main (int argc, char *argv[]) { pid_t childpid = 0; int i, nbrOfProcesses; if (argc != 2) { /* Check for
#include
#include
#include
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
return 1;
}
/* Convert character string to integer */
nbrOfProcesses = atoi(argv[1]);
for (i = 1; i < nbrOfProcesses; i++)
{
childpid = fork();
if (childpid == -1)
{
printf("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 ", i, (long)getpid(), (long)getppid(),
(long)childpid);
sleep(5); // Sleep five seconds
return 0;
} // End main
Explain the relationship between the created processes.
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