zoukankan      html  css  js  c++  java
  • 66.文件映射为内存进行操作

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<Windows.h>
     4 
     5 char path[256] = "kaifang.txt";
     6 
     7 void main()
     8 {
     9                               //路径,读写,    
    10     HANDLE hfile = CreateFileA(path, GENERIC_READ | GENERIC_WRITE, 0, NULL,
    11         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);//打开一个文件
    12 
    13     //如果打开失败
    14     if (hfile ==INVALID_HANDLE_VALUE)
    15     {
    16         printf("打开文件失败");
    17         system("pause");
    18     }
    19     //获取文件大小
    20     printf("
    %d", GetFileSize(hfile,NULL));
    21     //创建映射
    22     HANDLE hmap = CreateFileMappingA(hfile, 
    23         NULL, PAGE_READWRITE | SEC_COMMIT,//读写
    24         0, 
    25         GetFileSize(hfile, NULL) + 1,//文件大小多一位
    26         NULL);
    27     //判断是否映射失败
    28     if (hmap==NULL)
    29     {
    30         printf("映射失败");
    31         CloseHandle(hfile);
    32         system("pause");
    33     }
    34     //创建一个指针,存储映射以后的首地址
    35     PVOID pvfile = MapViewOfFile(hmap, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);
    36 
    37     if (pvfile==NULL)
    38     {
    39         printf("指针映射失败");
    40         CloseHandle(hfile);
    41         CloseHandle(hmap);
    42         system("pause");
    43 
    44     }
    45 
    46     puts("映射成功");
    47     char *pstart = pvfile;//首地址
    48     char *pend = pstart + GetFileSize(hfile, NULL);//结束地址
    49     system("pause");
    50     
    51     char str[100] = "test test";
    52     memcpy(pend, str, strlen(str));
    53 
    54 
    55     system("pause");
    56     UnmapViewOfFile(pvfile);//解除映射
    57     CloseHandle(hmap);
    58     system("pause");
    59 
    60 }
  • 相关阅读:
    cmd 进入不同的驱动盘及上下级目录
    子网/ip/子网掩码
    虚拟化技术与"云"
    OSI 7层模型
    第一天的CI笔记
    在本地Apache服务器配置虚拟主机站点
    phpmailer 发送邮件
    mysql 中执行的 sql 注意字段之间的反向引号和单引号
    手动部署LNMT(Nginx+Tomcat)并实现Nginx反向代理Tomcat
    JS 创建元素的三种方法
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8443408.html
Copyright © 2011-2022 走看看