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,      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);        // Now map the file     PCHAR pbFile = (PCHAR)::MapViewOfFile(hFileMapping, FILE_MAP_COPY, 0, 0, 0);         // Print result     printf("%sn", ((string)pbFile).c_str());         // Close all file handle     ::UnmapViewOfFile(pbFile);     ::CloseHandle(hFileMapping);     ::CloseHandle(hFile);         return 0;   }     

—-想了解C语言实现大数据文件的内存映射机制分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/481934.html

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐