>>27
まずlessってパイプとキー入力を同時に受けつけてるの?
main()
{
 int buf;
 while((buf=fgetc(stdin))!=EOF){
  fputc(buf,stdout);
 }
}

これだけでも、パイプからの入力中にいくらキーボード叩いても、
ごちゃまぜにはならんが。