• ベストアンサー

ライトモードとリードモードの両方で開くことは可能?

C言語で、あるテキストファイルに対してライトモードとリードモードの両方で開くことは可能なんでしょうか? つまり、書き込みと読み込みを同時にできるのでしょうか? スレッドを使えばできると聞いたんですが、本当なんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ファイルを読み書きモードで開いて、読んだり書いたりすることは可能です。fopen関数で"r+"または"w+"を使います。 "r"と"w"で別々のFILE*を使う場合は、fseekを使ってファイルへのアクセス位置を指定してあげないとおかしくなります。 スレッドを使っても話は同じで、誰かがファイル位置を管理する必要があります。ただ、スレッドの場合読みと書きのどちらが先に動くか分からないので、セマフォとかファイルロックみたいな排他制御するのが普通です。

secret-goo
質問者

お礼

"r+"とか"w+"という便利なモードがあったんですね。 初めて知りました。 ありがとうございました。

関連するQ&A