Question: Modify the below program so that the following two conditions are met: 1. Each child terminates abnormally after attempting to write to a location in

Modify the below program 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

Hint: Read the man page for psignal(3)

___________________________________.

#include

#include

#include

#include

#include

#include

#include

void unix_error(char *msg) /* unix-style error */

{

fprintf(stderr, "%s: %s ", msg, strerror(errno));

exit(0);

}

#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!