こんばんわ
使っている処理系はBCC5.5.1です
fopenのオープンモードに関してなんですけど

[temp.txtの中身]
こんばんわ
こんにちは

といったテキストファイルがあるとします。
そこでfopen()とfprintf()、fseek()を用いて

[temp.txtの中身]
おはよう
こんばんわ
こんにちは

0から"ごきげんよう\n"と追加して
以前あった"こんばんわ\nこんにちは"の値をごきげんよう\nの後ろに持ってきたいのです。
ですが a 及び a+ ではfseek関数によりファイルポインタは移動できませんし
w 及び w+ ではファイルは破棄されてしまいます
残される所 r+ モードしかないのですが更新モードですので、

[temp.txtの中身]
おはようわ
こんにちは

となってしまう筈です(一応ですが確認しました ...
そこで、上記のような処理を実装するモードは(APIを除く) C(又はC++のofstreamも含めていいです)レベルで容易されていますでしょうか