基本的にシステムコールだけ(fopenなどではなくopenなど)を使ってUNIXでいう"cat -n"の単純機能を実装しようとしています。

しかしバッファを1バイトずつ読んでいって"\n"があったらその場所に行番号をfprintfで追加していくようにしても、
ファイルの中身が最終行まで全部出力された後に、行番号がまとめて出力されてしまいます。。。

ファイルをreadした後は、writeとcloseが実行されるまで、fprintfの中身の出力は追加できないのでしょうか?
どなたか詳しい方、教えていただけませんか?