COMP 340, Fall 2014 Instructor: Dan Harris Assignment #2 Date: March 17, 2016 Due on March 2, 2016. * late assignment will be graded-down progressively by 10% for each day late. Q1. Write a C program Gen.c that generates a ordered sequence of 20 random numbers within a range of 1000 to 9999. The program is invoked by a command line % gen datfile1 In the above line, gen is the executable, datfile1 is the argument to the execution of gen. It specifies the name of the output file for the 20 random numbers. To make Gen.c possible, your main() program should accept arguments like #include void main (int argc, char *argv[]) { char *fname = argv[1]; .... fp = fopen(fname,"w"); .... Q2. Write a C program Sort.c that performs a merge sort on 2 number sequences produced by the program in Q1. Sort.c should spawn 2 processes and each of the children processes would exec() the Gen program to produce a sequence. Sort.c should also specify the filenames for the number sequences when spawning the children processes. The parent process should then wait for the termination of the children processes and perform a merge sort on the 2 data files. The final sorted sequence is written to the file "Sort.out". The algorithm for merge sort could be roughly described as 1. read num1 from datafile1 2. read num2 from datafile2 3. write the smaller between num1 and num2 to output 4. "refill" num1 or num2 according to which one has been outputted in step(3). 5. repeat (3) and (4) until both files are exhausted. END.