最近看了一些进程间通讯的资料,基本上原理是一样的,在一个线程开一个全局的服务,另外一个可以通过全名字,或者部分名字查找这个服务,然后取得这个全局服务的内存地址,得到内存中的数据。

在symbian上有RChunk,RTread等类,但是在3rd fp1上取消了RTread的Read和Write方法,所以只能用RChunk类了,调用方法如下:

一个线程启动服务:

_LIT(KChunkName,"xn Globla Chunk");
       TInt rc=iChk.CreateGlobal(KChunkName,0x1000,0x5000);

//取得共享内存地址

TUint8* uid=iChk.Base();
       HBufC* buf=HBufC8::NewL(255);
       buf->Des().Copy(_L8("123456"));
      
       //uid=&(iHbuf->Des()[0]);
       //将数据放入到共享内存中

TPtrC8 ptr;
       Mem::Copy(uid,(TAny *)buf->Des().Ptr(),buf->Length());
       //服务线程ok

另外线程:

_LIT(KChunkName,"xn Globla Chunk");
      RChunk chk;
      chk.OpenGlobal(KChunkName,0);//第一个参数指定了全局内存块的名称,第二个参数用于说明块是为只读(1)还是可写的(0)
      TUint8* uid=chk.Base();
      TPtrC8 ptr;
     //Mem::Copy(uid,(TAny *)iHbuf->Des().Ptr(),iHbuf->Length());
     ptr.Set( (const TUint8*)uid , chk.Szie());

//ok 共享内存中的数据取到了,当然也可以修改。

symbian进程间内存共享相关推荐

  1. 进程间内存共享问题[转]

    http://www.vkfz.com/net-CreateFileMapping-t55403.htm playroc 发表于 2006-2-27 23:21:08 超级难题:.net 中Creat ...

  2. linux进程间通讯-共享内存

    文章目录 共享内存概述 共享内存的特点 共享内存操作 在ubuntu 12.04中共享内存限制值如下 获得一个共享存储标识符 创建共享内存 共享内存映射(attach) 解除共享内存映射(detach ...

  3. WIN32 进程间通讯-共享内存

    一.引言     在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯.WIN32 API提供了许多函数使我们能够方便高效的进行进程间的通讯,通过这些函数我们可以控制不同进程间的数据交换 ...

  4. 进程间基于共享存储区的通信_IPC(进程间通讯):inter process communication

    管道 (1)管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道: (2)只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程): (3)**单独构成一种独立的文件系统:**管道 ...

  5. python multiprocessing 进程间如何共享数据、对象

    参考文章1:Python 进程间的数据共享 参考文章2:Python多进程编程-进程间共享 对象

  6. linux进程实现进程通信内存共享,Linux进程间通信 -3内存共享

    内存共享允许两个或多个不相关的进程,访问同一个逻辑内存,共享内存的具体实现,由不同进程之间共享的内存安排为同一物理内存. 过个进程就像通过malloc获取的内存一样去使用,但是需要额外的小消息来同队内 ...

  7. 开启子进程的两种方式、进程间内存空间隔离、进程对象的方法或属性详解

    1.操作系统(推荐查看书籍:现代操作系统)     操作系统是位于计算机硬件与软件之间的控制程序     作用:         1.将硬件的复杂操作封装成简单的接口,给用户或者应用程序使用      ...

  8. 进程间通信(1) dll 实现进程的内存共享

    1. 两个进程访问同一个dll 2.写入时复制(CopyOnWrite,简称COW)思想 如果有多个调用者(Callers)同时访问相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针 ...

  9. c++ 内存映射文件进程间共享数据

    int main(int argc, char *argv[])   {       //RecursiveDelete("C:\\20_128\\");       //Self ...

最新文章

  1. 视频来了 | 基于结构光投影三维重建技术系列课程
  2. GIT在测试过程中的基本使用
  3. The Hadoop Distributed Filesystem
  4. android 判断 飞行模式,如何在Android上检测飞行模式?
  5. 腾讯Groupon合资团购网站 高朋网悄然上线
  6. 以JSONobject形式提交http请求
  7. 聊聊 top 命令中的 CPU 使用率
  8. c# 轻量级ORM框架 实现(一)
  9. vue路由跳转动画_Vue路由跳转动画
  10. CPUID — CPU Identification
  11. 解决「matplotlib 图例中文乱码」问题
  12. linux服务器最大连接数
  13. poj3083Children of the Candy Corn(dfs+bfs)
  14. 车载系统不识别 U盘
  15. 【软件工程习题答案】第八章 维护
  16. 打印机共享与文件夹win10共享教程
  17. 抖音死亡计算机在线测,抖音死亡计算器测试
  18. win7查找计算机图片,win7电脑图片查看器丢失了的修复教程
  19. 谷歌浏览器任务栏图标变白色解决方法
  20. 这10道基础Java面试题,虐哭了多少人

热门文章

  1. 网络分流器-网络分流器-网络流量监控技术及其方法
  2. 客户SOP有什么作用?
  3. WinMount 2.1.5
  4. app微博登录的server
  5. Linux mtp路径,CentOS6.5上MTP读取Android手机
  6. Elasticsearch 零基础入坑指南
  7. 如何让matlab全速运行,提高matlab代码运行效率
  8. PWM的使用–舵机模块和电机驱动模块
  9. 包工头一般怎样接工程?如何找工程包工平台?
  10. ssb门限_SSB所需的传输带宽____DSB的传输带宽