美文网首页
共享内存

共享内存

作者: 8dc010427b39 | 来源:发表于2017-02-09 20:24 被阅读0次

创建共享内存区
int shmget(key_t key , size_t size , int shm-flg);

参数:

flags--------IPC_CREAT | 0666   建立加读写权限

ipcs -m 可以显示已经成功创建一块共享内存,nattch字段显示已经附加到这个内存区的进程数


附加到共享内存区

void *shmat(int shmid,const void *shmaddr,int shmflg)

char buf[1024];

char *mem=shmat(shid,0,0);//第一个参数是共享内存的id  一般第二个参数和第三个参数会填0,第二个参数填buf表示共享内存会与buf绑定,返回共享内存地址给mem


多个程序读写共享内存

进程1:

char *buf = shmat(shid, NULL, 0);

strcpy(buf,"hello\n");

进程2:

char *buf = shmat(shid, NULL, 0);

printf("%s\n",buf);


分离共享内存

int shmdt(const void *shmaddr)

shmdt(buf);


共享内存查看命令

查看共享内存  ipcs

杀死共享内存  ipcsrm  共享内存ID

相关文章

  • python多进程和多线程、内存共享和进程池、多线程编程

    @[toc] 内存共享 通过Value,Array实现内存共享返回一个从共享内存上创建的ctypes对象从共享内存...

  • 跨进城间通信的经典实现

    共享内存(Shared Memory)shmget(获取/创建内存共享区,key)shmat(映射内存共享区)sh...

  • 共享内存数据库--设计及实现

    共享内存: 共享内存是三种IPC机制中的一种.共享享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个...

  • 共享内存原理

    Linux的2.2.x内核支持多种共享内存方式,如mmap()系统调用,Posix共享内存,以及系统V共享内存。 ...

  • Handler

    Handler,共享内存的方案,与wait/notify相比使用非常简单 内存共享,线程之间的通信就是共享内存 H...

  • 进程通信:共享内存,套接字

    进程通信方式:共享内存 共享内存本质上就是每个进程将虚拟地址空间指向共享内存块中,当一个进程往一个共享内存快中写入...

  • JVM第二天-volatile final synchroniz

    1.JAVA内存模型 简单的讲,Java 内存模型将内存分为共享内存和本地内存。共享内存又称为堆内存,指的就是线程...

  • 033 Android多进程-共享内存

    1 什么是共享内存? 1.1 什么是共享内存? 共享内存是系统处于多个进程之间通讯的考虑,而预留的一块内存区。 共...

  • 8.31

    Android匿名共享(Ashmen)Android特有内存共享机制,实现了进程间的内存共享。基于ashmen设备...

  • boost 内存共享跨线程

    写一个模块用于跨进程内存共享,boost 很好的提供了在共享内存上的内存分配器,可以在共享内存中创建容器,然后跨进...

网友评论

      本文标题:共享内存

      本文链接:https://www.haomeiwen.com/subject/xaewittx.html