写入端:

#include

#include

#include

#include

#include

using namespace std;

struct MappingDataType {

int mappingData;

};

bool SetUsedPID(string mappingName)

{

void *shm = NULL;

MappingDataType *shared;

int shmid = shmget((key_t), sizeof(MappingDataType), |IPC_CREAT);

if(shmid == -)

{

fprintf(stderr, "shmget failed\n");

return false;

}

shm = shmat(shmid, , );

if(shm == (void*)-)

{

fprintf(stderr, "shmat failed\n");

return false;

}

shared = (MappingDataType*)shm;

shared->mappingData = ::getpid();

/*if(shmdt(shm) == -1)

{

fprintf(stderr, "shmdt failed\n");

return false;

}

if(shmctl(shmid, IPC_RMID, 0) == -1)

{

fprintf(stderr, "shmctl(IPC_RMID) failed\n");

return false;

}*/

return true;

}

int main(int argc, char *argv[])

{

bool result = SetUsedPID("abc");

//打断点,运行读取端

cout << result << endl;

return ;

}

读取端:

#include

#include

#include

#include

#include

using namespace std;

struct MappingDataType {

int mappingData;

};

int GetUsedPID(string mappingName)

{

void *shm = NULL;

MappingDataType *shared;

int shmid = shmget((key_t), sizeof(MappingDataType), | IPC_CREAT);

if (shmid == -)

{

fprintf(stderr, "shmget failed\n");

return ;

}

shm = shmat(shmid, , );

if (shm == (void*)-)

{

fprintf(stderr, "shmat failed\n");

return ;

}

shared = (struct MappingDataType*)shm;

int pid = shared->mappingData;

if (shmdt(shm) == -)

{

fprintf(stderr, "shmdt failed\n");

}

if (shmctl(shmid, IPC_RMID, ) == -)

{

fprintf(stderr, "shmctl(IPC_RMID) failed\n");

}

return pid;

}

int main(int argc, char *argv[])

{

int pid = GetUsedPID("abc");

cout << pid << endl; //<================= Put a breakpoint here

return ;

}

Windows进程间共享内存通信实例

Windows进程间共享内存通信实例 抄抄补补整出来 采用内存映射文件实现WIN32进程间的通讯:Windows中的内存映射文件的机制为我们高效地操作文件提供了一种途径,它允许我们在WIN32进程中保 ...

【VS开发】内存映射文件进程间共享内存

内存映射文件进程间共享内存 内存映射文件的另一个功能是在进程间共享数据,它提供了不同进程共享内存的一个有效且简单的方法.后面的许多例子都要用到共享内存.共享内存主要是通过映射机制实现的.Windows ...

C&num; 进程间共享内存通信方式

从别处看到一篇文章做进程间通信很好使,唯一的问题是,需要注意using的用法,Using有个用法3, using 语句允许程序员指定使用资源的对象应当何时释放资源.using 语句中使用的对象必须实现 ...

Linux 进程间通讯详解一

进程间的通讯 两台主机间的进程通讯 --socket 一台主机间的进程通讯 --管道(匿名管道,有名管道) --System V进程间通信(IPC)包括System V消息队列,System V信号量 ...

【笔记】Linux进程间同步和进程绑定至特定cpu

#define _GNU_SOURCE #include #include #include

linux进程间的通信之 共享内存

一.共享内存介绍 共享内存是三个IPC(Inter-Process Communication)机制中的一个. 它允许两个不相关的进程访问同一个逻辑内存. 共享内存是在两个正在进行的进程之间传递数据的 ...

Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析

linux共享内存示例,linux 进程间共享内存示例相关推荐

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

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

  2. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析

    在前面一篇文章Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析中,我们系统地介绍了Android系统匿名共享内存的实现原理,其中着重介绍了 ...

  3. windows核心编程之进程间共享数据

    有时候我们会遇到window进程间共享数据的需求,例如说我想知道系统当前有多少某个进程的实例. 我们能够在程序中定义一个全局变量.初始化为0.每当程序启动后就加1.当然我们我们能够借助第三方介质来储存 ...

  4. 如何在进程间共享数据

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

  5. python 多进程共享变量manager_python 进程间共享数据 multiprocessing 通信问题 — Manager...

    Python中进程间共享数据,处理基本的queue,pipe和value+array外,还提供了更高层次的封装.使用multiprocessing.Manager可以简单地使用这些高级接口. Mana ...

  6. DLL入门浅析(5)——使用DLL在进程间共享数据

    在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的,因为所有的进程用的都收同一块地址空间:而在Win32环境中,情况却发生了变化,每个进程都有了它自己的地址空间,DLL函数中的代码所 ...

  7. 关于linux使用动态库进行进程间通讯

    因为之前是用共享内存来进行进程间的通信,这几天在验证一个思路:使用动态库进行进程间的通信. 关于动态库与静态库的区别以及动态库的一些特征,这里就不说了,网上很多,百度即可.这里只说说本人的整个研究过程 ...

  8. VC 利用DLL共享区间在进程间共享数据及进程间广播消息

    在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用 DLL 的共享区间在进程间共享数据,及共享数据有变化时及时的反馈给各相关进程. 一.在DLL中设置共享区间 在DLL中是用数据段 ...

  9. android 共享数据,android进程间共享简单数据

    我们知道,在android中,保存简单的数据最方便的就是使用SharedPreferences,然而,SharedPreferences虽然说也可以设置成进程间共享数据,但是并不可靠(更致命的是,不同 ...

最新文章

  1. 《那些年啊,那些事——一个程序员的奋斗史》——35
  2. 企业数字化转型解决方案
  3. 使用SDL打造游戏世界之入门篇 - 7
  4. Lync 小技巧-17-查询Lync 2013聊天记录
  5. 你必须要知道的数据备份工具rsync
  6. python简单的爬虫实例
  7. DolbyAudio访问杜比音效驱动程序时发生问题,请重新启动计算机或......
  8. python里none什么意思_python none代表什么
  9. cdr2022辅助注册机序列号
  10. 【高级操作系统-陈渝】Architecture-计算机架构
  11. CROSSFORMER: A VERSATILE VISION TRANSFORMER BASED ON CROSS-SCALE ATTENTION
  12. Django3.0使用-国际化语言
  13. include指令包含网站banner和版权信息栏
  14. java Locale介绍
  15. 怪兽IT学院PHP零基础入门在线学习手册
  16. java趣味编程心形_求源代码!(迪卡尔心形图案)
  17. 苹果市场占有率_快手充值快快币苹果版
  18. ipfs 云服务器_图们时空云,ipfs服务器
  19. 学习 Redis Connection(连接)
  20. 原生AJAX下载文件(下载模板)

热门文章

  1. shell 查出文件并复制到另一个文件夹
  2. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
  3. JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
  4. Windows Phone 7 LongListSelector控件实现分类列表和字母索引
  5. Hadoop入门-单机伪分布式配置
  6. 设置zookeeper开机自启动
  7. linux无法下载ftp,linux 不能下载怎么办
  8. php scandir sftp,CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能
  9. mysql根据ID的顺序查找_求救:mysql 如何根据给定的 ID顺序查找结果?
  10. js html异步加载的属性,异步加载JS的五种方式