Sna*_*zer 3 c++ file-io cross-platform file
我在C++中编写一个并发的持久性消息队列,它需要对文件进行并发读访问,而不使用内存映射io.简短的故事是,几个线程需要从文件的不同偏移量中读取.
最初我有一个具有典型读/写方法的文件对象,并且线程将获取一个互斥锁来调用这些方法.但是,碰巧我没有在某处正确获取互斥锁,导致一个线程在读/写期间移动文件偏移量,另一个线程将开始读/写文件的不正确部分.
所以,偏执的解决方案是每个线程有一个打开的文件句柄.现在我对同一个文件有很多文件句柄,我假设它不是很好.
我想使用类似pread的东西,它允许将当前偏移量传递给读/写函数.
但是,该功能仅适用于linux,我需要在windows,aix,solaris和hpux上进行等效实现,有什么建议吗?