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

      看windows下的进程间通信,第一个就是Filemapping,今天下午好好的看了下.试了半天写了两个小程序终于运行成功了...

    program 1

     1 #include<windows.h>
     2 #include<iostream>
     3 
     4 int main()
     5 {
     6     HANDLE hFile=CreateFile("e:\kuan.txt",GENERIC_READ|GENERIC_WRITE,
     7         FILE_SHARE_WRITE,
     8         NULL,
     9         OPEN_ALWAYS,
    10         FILE_ATTRIBUTE_NORMAL,
    11         NULL);
    12 
    13     HANDLE hFileMapping=CreateFileMapping(hFile,
    14         NULL,
    15         PAGE_READWRITE,
    16         0,0x00000110,
    17         "kuan");
    18 
    19     if(hFileMapping==NULL)
    20     {
    21         std::cout<<"fmap invali"<<std::endl;
    22     
    23     }
    24 
    25     PBYTE pbFile=(PBYTE)MapViewOfFile(hFileMapping,
    26         FILE_MAP_ALL_ACCESS ,0,0,0);
    27 
    28     //*pbFile='B';
    29     char* pb="asdasdasdasdasdasdasdasdasdasd";
    30     memcpy(pbFile,pb,strlen(pb));
    31     //FlushViewOfFile(pbFile,0);
    32     UnmapViewOfFile(pbFile);
    33     getchar();
    34     CloseHandle(hFileMapping);
    35     CloseHandle(hFile);
    36 
    37 
    38     system("PAUSE");
    39     return 0;
    40 }

    program 2

     1 #include<windows.h>
     2 #include<iostream>
     3 
     4 int main()
     5 {
     6     HANDLE hFilemapping=OpenFileMapping(FILE_MAP_ALL_ACCESS,0,"kuan");
     7     
     8     PBYTE pb=(PBYTE)MapViewOfFile(hFilemapping,FILE_MAP_ALL_ACCESS,0,0,0);
     9 
    10     char *p="12131231241";
    11     *pb='A';
    12     //memcpy(pb,p,strlen(p));
    13     UnmapViewOfFile(pb);
    14     //CloseHandle(hFilemapping);
    15     return 0;
    16 
    17 }

    文件映射对象可以通过文件名访问,然后在其他程序中通过openfilemapping打开,注意openfilemapping第一个参数不同于createfilemapping的第三个参数flprotection,

    openfilemapping是FILE_MAP_* ,createfilemapping是PAGE_**,为此第二个进程一直不能写入,但是能读出,这到是很神奇啊...

  • 相关阅读:
    插入排序-Java
    选择排序-java
    逻辑回归----梯度上升
    logistic回归----- 随机梯度下降法
    JAVA实现聚类指标的计算Purity、NMI、RI、Precision、Recall、F值。
    Python 条形图绘制
    java中接口的注意事项
    算法-双向队列
    算法-manacher-最长回文子串-1
    算法-kmp-1
  • 原文地址:https://www.cnblogs.com/cavehubiao/p/3290495.html
Copyright © 2011-2022 走看看