Question: Modify the program in Figure 8 . 1 8 so that the following two conditions are met: 1 . Each child terminates abnormally after attempting

Modify the program in Figure 8.18 so that the following two conditions are met:
1. Each child terminates abnormally after attempting to write to a location in the read-only text segment.
2. The parent prints output that is identical (except for the PIDs) to the following: child 12255 terminated by signal 11: Segmentation fault child 12254 terminated by signal 11: Segmentation fault
/* Figure 8.18*/
#include "csapp.h"
#define N 2
int main()
{
int status, i;
pid_t pid;
/* Parent creates N children */
for (i =0; i < N; i++)
if ((pid = Fork())==0)/* child */
exit(100+i);
/* Parent reaps N children in no particular order */
while ((pid = waitpid(-1, &status, 0))>0)
{
if (WIFEXITED(status))
printf("child %d terminated normally with exit status=%d
",
pid, WEXITSTATUS(status));
else
printf("child %d terminated abnormally
", pid);
}
/* The normal termination is if there are no more children */
if (errno != ECHILD)
unix_error("waitpid error");
exit(0);
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!