WIN32硬盘文件映射到内存

Posted ganxiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WIN32硬盘文件映射到内存相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <windows.h>


int main()
{
    //创建打开文件
    HANDLE cFile = CreateFile("D:\filterBufFile.txt",
        GENERIC_READ | GENERIC_WRITE,
        0,
        NULL, OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
    //内存申请物理页
    HANDLE hMapFile = CreateFileMapping(cFile, NULL, PAGE_READWRITE, 0, 0, "共享映射");
    //和虚拟地址映射
    LPTSTR lpBuff = (LPTSTR)MapViewOfFile(hMapFile, FILE_MAP_WRITE, 0, 0, 0);

    //*(PDWORD)lpBuff = 0x12345678;

    //getchar();
    //读文件
    printf("%p ", lpBuff);
    printf("%x ", *(PDWORD)lpBuff);
    printf("%x ", *((PDWORD)lpBuff+1));

    //写文件
    *(PDWORD)lpBuff = 0x41414141;
    printf("%x ", *(PDWORD)lpBuff);
    //getchar();
    //强制刷新
    //FlushViewOfFile(((PDWORD)lpBuff), 4);

    //关闭映射
    UnmapViewOfFile(lpBuff);
    //关闭句柄
    CloseHandle(hMapFile);
    //关闭句柄
    CloseHandle(cFile);

    


    system("pause");
    return(0);
}

以上是关于WIN32硬盘文件映射到内存的主要内容,如果未能解决你的问题,请参考以下文章

win32day13-地址空间/地址映射/虚拟内存/堆内存/内存映射文件

win32day13-地址空间/地址映射/虚拟内存/堆内存/内存映射文件

内存映射文件

高效率场景-内存映射

内存映射文件原理探索

win10自带的Hyper-v虚拟机,安装好Xp系统后,怎么把win10硬盘的文件复制到虚拟磁盘?