Question: Write code that forks into two processes: a parent process, and a child process. Same as the Regular version, except that your code must also

Write code that forks into two processes: a parent process, and a child process.

Same as the Regular version, except that your code must also be able to handle negative integers input from the command-line.

If I call your code this way:

a03 -3 5 -7

The parent process should print out:

Assignment 3 sum = -5

The sums produced from the test input I use will be in the range [-128 .. 127]

--------------------------------------------------------------------------------------------------------------------

// Numbers from command line arguments are sent to child process // from parent process one at a time through pipe. // // Child process adds up numbers sent through pipe. // // Child process returns sum of numbers to parent process. // // Parent process prints sum of numbers.

#include

int main(int argc, char **argv) { // set up pipe

// call fork()

if (0 /* replace 0 with test for parent vs child, delete this comment */) { // -- running in child process --

int sum = 0;

// Receive numbers from parent process via pipe // one at a time, and count them.

// Return sum of numbers. return sum; }

else { // -- running in parent process --

int sum = 0;

// Send numbers (datatype: int, 4 bytes) from command line arguments // starting with argv[1] one at a time through pipe to child process.

// Wait for child process to return. Reap child process. // Receive sum of numbers via the value returned when // the child process is reaped.

printf("sum = %d ", sum); return 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!