【问题标题】:Cannot write to MMF using pointer无法使用指针写入 MMF
【发布时间】:2014-01-23 11:12:57
【问题描述】:

我想将char* buf[] 写入共享内存。

我有几个指向几张地图的指针 - char* m_pP[MAX],地图已打开

m_oMMF[channel] = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, wstring);
m_pP[channel] = (char*) MapViewOfFile(m_oMMF[channel], FILE_MAP_ALL_ACCESS, 0, 0, size);

map 的大小足够大,我得到了 int offset,我想使用这个 m_P[] 指针在共享内存中写入,但我在这个语法上苦苦挣扎。

我在 C++ 方面没有那么丰富的经验。 谁能帮我这个?

谢谢

【问题讨论】:

    标签: c++ pointers memory-management shared-memory memory-mapped-files


    【解决方案1】:

    不确定我是否理解清楚。

    但我假设,您有指向映射内存的字符指针,并且您正在尝试在特定偏移量之后写入数据。

    char * ptr_to_memory = m_pP[channel];
    
    //buf is array of character pointer, so you need to know the "index" as well as "size" of the data you need to write.
    
    char * data_to_write = buf[index];
    
    memcpy( ptr_to_memory + offset, data_to_write, size );
    

    记得做一些完整性检查,是否 (ptr + offset) 在映射区域内。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多