使用内存映射文件来提高你程序的性能

本文提供了一个使用C++进行文件映射到内存的示例代码。通过此代码,你可以了解如何利用Windows API函数CreateFile、CreateFileMapping及MapViewOfFile等来实现文件映射,从而在内存中直接操作文件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考一:http://baike.baidu.com/view/394293.htm

参考二:http://www.cnblogs.com/fangyukuan/archive/2010/09/09/1822216.html

练习代码:
#include "stdafx.h"
#include "windows.h"
#include <iostream>
using namespace std;
 
int main(int argc, CHAR* argv[])
{
   // Open the file that we want to map.
   // 注意请在c盘,自己创建一个kuan.txt文件,并写入内容
   HANDLE hFile = CreateFile("C:\\test.txt",
      GENERIC_READ | GENERIC_WRITE,
      0,
      NULL,
      OPEN_ALWAYS,
      FILE_ATTRIBUTE_NORMAL,
      NULL);
 
   // Create a file-mapping object for the file.
   HANDLE hFileMapping = CreateFileMapping(hFile,
      NULL,
      PAGE_WRITECOPY,
      0, 0,
      NULL);

   PBYTE pbFile = (PBYTE)MapViewOfFile(hFileMapping, FILE_MAP_COPY, 0, 0, 0);
   if(pbFile != NULL){
   cout << pbFile << endl;
   }
   UnmapViewOfFile(pbFile);
 
   CloseHandle(hFileMapping);
   CloseHandle(hFile);
 
   return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值