作者oopoop (惑)
看板C_and_CPP
标题[问题] 两个thread同时读写一个档案
时间Sat Jun 20 00:01:13 2009
请教各位,
有两个thread,一个是不断的写档,另一个则是不断的读此档。
应该要如何做,可以避免出错呢?
有以下几个问题与想法,想跟大家请教~
1、分别开各自的file handle,如此读/写是否就会keep住自己的read/write pointer呢?
2、只开一个file handle,再用二个变数分别记住读/写的位置,
当要做fwrite与fread时,利用fseek跳到正确的位置。
3、FILE I/O是否会自己保护好?
还是也需要mutex的保护去预防两个thread同时在读写同一档案
4、若是开一个file handle与开两个file handle都可行的话,
哪一种的效率较佳
5、以上皆不可行,需用其它方法 >"<
以上几个问题,麻烦各位了,谢谢 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.198.135.180
1F:→ softwind:12看 file handler的结构 3一个只读一个只写应该没有冲突 06/20 00:34
2F:推 areyo:CriticalSection? 06/20 09:45
3F:推 eleghost:比较简单的作法应该是3吧, 1 2写不好发生错误机会很高吧 06/20 10:15
4F:→ eleghost:4 的话感觉应该只是用不同的fd, 实际上根本没有解决 06/20 10:16
5F:推 marcX:同步一下吧 可以利用waitForSingleObject 06/20 12:10