C 使用多线程创建文件映射
我试图使用两个线程同时运行,并且都使用FileMapping功能通过不同的句柄将文件映射到内存中。 问题是MapViewOfFile函数有时会将两个线程上的映射分配到相同的内存偏移量。 我尝试在这些部分上使用互斥体,但在高使用率之后,似乎无法写入映射位置。 尝试使用MapViewOffilex获取要使用的内存偏移量,但我不知道应该提供什么偏移量。C 使用多线程创建文件映射,c,file,multithreading,C,File,Multithreading,我试图使用两个线程同时运行,并且都使用FileMapping功能通过不同的句柄将文件映射到内存中。 问题是MapViewOfFile函数有时会将两个线程上的映射分配到相同的内存偏移量。 我尝试在这些部分上使用互斥体,但在高使用率之后,似乎无法写入映射位置。 尝试使用MapViewOffilex获取要使用的内存偏移量,但我不知道应该提供什么偏移量。 任何帮助都将不胜感激。谢谢。我运行了一些测试,如果文件映射的两个实例都标记为只读,即使两个视图都是从同一个文件映射对象映射的,我也不会得到映射视图的相
任何帮助都将不胜感激。谢谢。我运行了一些测试,如果文件映射的两个实例都标记为只读,即使两个视图都是从同一个文件映射对象映射的,我也不会得到映射视图的相同地址。操作系统将基于进程的地址空间映射视图,而不是基于哪个线程打开视图。您可以向我们展示用于获取文件句柄、文件映射句柄和映射视图的代码吗?我运行了一些测试,并且我没有获得映射视图的相同地址,除非文件映射的两个实例都标记为只读,即使两个视图都从同一个文件映射对象映射。操作系统将基于进程的地址空间映射视图,而不是基于哪个线程打开视图。你能告诉我们你用来获取文件句柄、文件映射句柄和映射视图的代码吗?“写不出来”,这应该是真正发生的事情的线索。请提供详细信息。您能发布代码并更详细地描述“编写失败”吗?我非常喜欢内存映射文件(如果它们合适的话),我希望看到更多关于这个问题的信息/帮助找到答案。“写不出来”,这应该是真正发生的事情的线索。请提供详细信息。您能发布代码并更详细地描述“编写失败”吗?我非常喜欢内存映射文件(如果它们合适的话),并且希望看到更多关于这个问题的信息/帮助找到答案。