同じファイルを開いて読み取る (書き込みではない) マルチスレッド アプリケーションがあります。スレッドごとに異なるファイル記述子を開いています (ただし、それらはすべて同じファイルを指しています)。次に、各スレッドはファイルを読み取り、ファイルを閉じて、EOF に達した場合に再度開くことができます。これでよろしいですか?ファイル記述子で fclose() を実行すると、同じファイルを指す他のファイル記述子に影響しますか?
8650 次
3 に答える
4
Linux システムでは、これを行うために複数のファイル記述子は必要ありません。単一のファイル記述子を共有し、preadを使用して、ファイル記述子をまったく変更せずにアトミックにシーク/読み取り操作を実行できます。
于 2013-07-10T14:41:06.020 に答える
3
それで大丈夫です。同じファイルが必要なときはいつでも開くことができ、各ファイル記述子は互いに独立しています。
于 2010-04-18T21:05:32.850 に答える
0
各スレッドが独自のファイル ハンドルを持っている場合、これは正常に機能するはずです。の使用について言及しているため、各スレッドでfclose()
も使用fopen()
しており、各スレッドは独自のFILE *
変数にのみ影響することを示唆しています。
問題はありますか?
于 2010-04-18T21:06:09.503 に答える