Question: Suppose we have three programs aaa, bbb, ccc which are already developed, compiled and ready to execute. The first two, namely aaa and bbb, simply

 Suppose we have three programs aaa, bbb, ccc which are already

developed, compiled and ready to execute. The first two, namely aaa and

Suppose we have three programs aaa, bbb, ccc which are already developed, compiled and ready to execute. The first two, namely aaa and bbb, simply do some random amount of computation and write a character (respectively, 'A' and 'B to STDOUT_FILENO in a loop that is repeated 1000 times. If we run both programs at the same time, we might see different numbers of As and Bs such as AABBBAAABBBBABB. . . on the screen. The third program, namely ccc, reads a sequence of characters from STDIN_FILENO and simply counts the number of the same characters that appear consecutively and writes that information to STDOUT_FILENO. For example, if we give the above possible sequence of As and Bs to ccc, it will print A 2, B 3, A 3, B 4, A 1, B 2, .. . on the screen. Now you are asked to write a program (say xyz.c) which can execute aaa, bbb, and ccc as children and connect them in a way that the output of aaa and bbb will go into a single pipe. Then, ccc will get the mixed sequence of characters from this pipe and do its job. Your program (parent) will wait for all three children to be done, then it will quit! Convince yourself that your program should create the following relation through a pipe! childl (aaa) [1] ---> I---| child2 (bbb) [1] ->I I mypipe -> [0]child3 (ccc) You can ignore most of the error checking to make your code clear, but you need to close all unnecessary file/pipe descriptors and need to check what fork0 returns to detect child/parent proceees and/or what read0/writeO returns to detect end of file etc. To execute a given program simply use execl ("aaa", "aaa" , NULL); etc. /your implementation of xyz.c / #include #include #include #include int main (int argc, char argv[]) int mypipe [2]; int child1=1, child2-1, child3-1; /*parent: create mypipe and children processes (3pt)

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!