subject

The following program is designed to echo a message from one child process to another, with upper and lowercase letter reversed. The program reliably outputs just the message "h" and then quits. Explain in a very clearly why this is the output. Suggest how the program could be corrected to produce the expected output. #include

#include

#include

#include

#include

#include

int main()

{

int fd1[2];

int fd2[2];

char message[] = "Hello, world!\n";

char buffer[100];

pid_t pid1;

pid_t pid2;

if (pipe(fd1) == -1)

{ return 1;

}

if (pipe(fd2) == -1)

{ return 1;

}

pid1 = fork();

pid2 = fork();

if (pid1 < 0)

{ return 1;

}

if (pid2 < 0)

{ return 1;

}

if (pid1 > 0)

{

close(fd2[0]);

write(fd2[1], message, strlen(message)+1);

close(fd2[1]);

close(fd1[1]);

read(fd1[0], buffer, 100);

close(fd1[0]);

printf("%s", buffer);

}

else if (pid2 > 0) {

close(fd2[1]);

read(fd2[0], buffer, 100);

close(fd2[0]);

close(fd1[0]);

for (int i=0; i
if(islower(buffer[i])) {

buffer[i] = toupper(buffer[i]);

}

else {

buffer[i] = tolower(buffer[i]);

}

sleep(1);

write(fd1[1], &buffer[i], 1);

}

close(fd1[1]);

}

return 0;

}

ansver
Answers: 3

Another question on Computers and Technology

question
Computers and Technology, 23.06.2019 11:30
The most accurate readings that you can take on an analog vom are when the meter's pointer is at the a. center scale. b. extreme right. c. near right. d. extreme left.
Answers: 1
question
Computers and Technology, 23.06.2019 22:30
The output voltage of a power supply is assumed to be normally distributed. sixteen observations are taken at random on voltage are as follows: 10.35, 9.30, 10.00, 9.96, 11.65, 12.00, 11.25, 9.58, 11.54, 9.95, 10.28, 8.37, 10.44, 9.25, 9.38, and 10.85
Answers: 1
question
Computers and Technology, 24.06.2019 02:10
Which sentences describe the things you need to ensure while creating a sketch and a drawing? while an artistic or creative drawing is a creative expression, a technical drawing is an informative expression. you need to create accurate and neat drawings to convey accurate information. a technical drawing clearly conveys its meaning or information, and does not leave room for interpretation maintain a good speed while creating drawings
Answers: 1
question
Computers and Technology, 24.06.2019 11:30
Convert 11001110(acdd notation) into decimal
Answers: 2
You know the right answer?
The following program is designed to echo a message from one child process to another, with upper an...
Questions
question
Mathematics, 04.08.2021 01:00
question
Mathematics, 04.08.2021 01:00
question
Mathematics, 04.08.2021 01:00
Questions on the website: 13722367