子プロセスのstdinとstdoutのファイル記述子を次のようにリダイレクトしています。ここで、入力記述子でデータが利用可能になるまで子プロセスを待機させたいと思います。現在、入力記述子でデータが利用できない場合、子プロセスはランダムな値(おそらくEOF)を取り、終了します。
fd0=open("in1.dat", O_RDWR|O_CREAT);
fd1=open("out1.dat", O_RDWR|O_CREAT);
if(pid==0)
{
dup2(fd0, 0); // redirect input to the file
dup2(fd1, 1); // redirect output to the file
execlp("./flip","flip","new","4",NULL);
}