具有多个线程的CreateFileMapping

时间:2009-12-21 11:08:56

标签: c file multithreading

我试图使用同时运行的2个线程,并且都使用FileMapping功能通过不同的句柄在内存上映射文件。 问题是MapViewOfFile函数有时会将两个线程上的映射分配给相同的内存偏移量。 我尝试在这些部分使用互斥,但似乎在高使用后我无法写入映射位置。 尝试使用获取内存偏移量的MapViewOfFileEx,但我不知道应该提供什么偏移量。 任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

我运行了一些测试,并且我没有为映射视图获取相同的地址,除非文件映射的两个实例都标记为只读,即使两个视图都是从同一文件映射对象映射的。操作系统将根据进程的地址空间映射视图,而不是基于打开视图的线程。您能否向我们展示您用于获取文件句柄,文件映射句柄和映射视图的代码?