The assignment was graded on a basis of 30 points.
The extra credit was worth 2 points. You had to show the program to get credit.
Answers to questions: Part 1
pipe(fd);
dup2(fd[0],0);
dup2(fd[1],1);
close(fd[0]);
close(fd[1]);
for(i=1;i<nprocs;i++) {
childpid = fork();
if(childpid>0)break;
}
if(i==1)token = 97;
if(i!=1)read(0,&token,1);
fprintf(stderr,"Process %d with parent %d\n",getpid(),getppid());
write(1,&token,1);
Remember that the byte written must be initialized,
at least by the first process.