在地址空间中映射的内存映射文件。如何映射windows文件,如果地址空间是4 gb,那么大小是4 gb以上?
发布于 2013-10-30 18:34:40
看看相关的API:
LPVOID WINAPI MapViewOfFile(
_In_ HANDLE hFileMappingObject,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwFileOffsetHigh,
_In_ DWORD dwFileOffsetLow,
_In_ SIZE_T dwNumberOfBytesToMap
);这只映射文件的一部分,即文件的一个视图。并且可以在任何一次映射的字节数由dwNumberOfBytesToMap的值确定。它的类型为SIZE_T,这是一个指针大小的整数。换句话说,在32位进程中,一次可以映射的上限是4 4GB。
如果要映射的文件大于4 4GB (实际上,在达到4 4GB之前很久就会遇到连续地址空间的问题),则需要映射该文件的多个视图,以便完整地覆盖该文件。
https://stackoverflow.com/questions/19679777
复制相似问题