C语言实现大数据文件的内存映射机制

C语言实现大数据文件的内存映射机制,第1张

概述C语言实现大数据文件的内存映射机制摘要本文主要讲述大量数据的文件的内存映射机制的实现。

C语言实现大数据文件的内存映射机制

摘要

本文主要讲述大量数据的文件的内存映射机制的实现。

1. 内存映射

内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreatefileMapPing)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行 *** 作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O *** 作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。

2. 实现

#include "stdafx.h" #include "windows.h" #include <iostream> #include <fstream>  using namespace std;    int main(int argc,_TCHAR* argv[]){    //// Open the file that we want to map.   HANDLE hfile = ::Createfile(L"C:/Users/Joe WANG/Desktop/Data.txt",GENERIC_READ | GENERIC_WRITE,NulL,OPEN_ALWAYS,file_ATTRIBUTE_norMAL,NulL);    // Create a file-mapPing object for the file.   HANDLE hfileMapPing = ::CreatefileMapPing(hfile,PAGE_WRITEcopY,NulL);    // Now map the file   PCHAR pbfile = (PCHAR)::MapVIEwOffile(hfileMapPing,file_MAP_copY,0);     // Print result   printf("%s\n",((string)pbfile).c_str());     // Close all file handle   ::UnmapVIEwOffile(pbfile);   ::CloseHandle(hfileMapPing);   ::CloseHandle(hfile);     return 0; } 

总结

以上是内存溢出为你收集整理的C语言实现大数据文件的内存映射机制全部内容,希望文章能够帮你解决C语言实现大数据文件的内存映射机制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1245548.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存