What this code does is, parent process forks a child and then child forks a child. Parent writes a string to the pipe, child reads it and then writes it to the next pipe, the one connecting child and child's child. Child's child reads it and prints it in stdout
#define BSIZ 20
printf("read from pipe:\n%s",buf2);
my problem is I tried to change what the last forked child does. Instead of reading from pipe and print (which works fine), I tried to run a sort which I suppose reads from stdin, which has been "dupped" so should read from the pipe and then print to stdout. Anyway, this is the last block,the commented out one. So commenting out read, printf and uncomment the sort is not working. If someone could explain...Thanks.