zoukankan      html  css  js  c++  java
  • 文件映射

    // 文件映射-操作文件.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <windows.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        HANDLE hFile;        // 文件句柄
        HANDLE hMapFile;     // 文件内存映射区域的句柄
        LPVOID lpMapAddress; // 内在映射区域的起始位置
        // 1. 创建一个文件
        hFile = CreateFile(L"D:\1.exe", GENERIC_READ | GENERIC_WRITE, 0, NULL,
            OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
        if (INVALID_HANDLE_VALUE == hFile)  return FALSE;
        // 2. 创建文件映射
        hMapFile = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0,
            GetFileSize(hFile, NULL), NULL);
        if (NULL == hMapFile)  return FALSE;
        // 3. 将文件映射View
        lpMapAddress = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
        if (NULL == lpMapAddress)  return FALSE;
        // ......
        *((char*)lpMapAddress) = 'O';
        //...
        //...
        //...
        // 可以使用lpMapAddress进行一些操作
        // ......
        // 4. 将映射的数据写回到硬盘上
        FlushViewOfFile(lpMapAddress, 0);
        // 5. 关闭mapping对象
        if (!CloseHandle(hMapFile))  return FALSE;
        if (!CloseHandle(hFile))     return FALSE;
    
        return 0;
    }
  • 相关阅读:
    第二部分 设计类型:第8章 方法
    centos7 网卡重命名
    centos7修改主机名
    修改umask值
    mysql表字段属性
    mysql基础操作
    mysql错误代码ERROR 1045 (转载)
    sed高级用法
    shell拷贝原文件到目标对应文件夹
    函数(位置传参)
  • 原文地址:https://www.cnblogs.com/Alyoyojie/p/5334826.html
Copyright © 2011-2022 走看看