【发布时间】:2012-09-02 03:36:31
【问题描述】:
我正在使用 OS 便携式数据库服务器,我想知道在不锁定整个文件的情况下读取/写入索引文件磁盘扇区的最佳方法是什么。我的数据库磁盘管理器有一个位图,用于跟踪索引文件中所有已使用/未使用的扇区的位置。另外,是否有操作系统可移植的方式来执行此操作?
【问题讨论】:
-
您无需了解任何有关原始磁盘扇区的信息即可执行此操作。只需使用控制搜索或 I/O 偏移的函数即可。例如
fseek和ftell. -
这就是司机的目的,只有司机知道这么低的细节
-
@BenVoigt 当我使用 fseek 和 ftell 时,多个线程可以同时写入同一个文件吗?
-
如果您想要可预测的结果,线程不能同时写入文件中的同一位置。例如,如果文件中有“A”,则一个线程会同时写入“B”和另一个“C”——无法知道最终的结果是“B”还是“C”
-
@Drakosha 我的磁盘管理器确保两个线程不会同时写入同一个扇区。