linux进程通信之共享内存的概述和使用

共享内存是两个进程共用一块公共内存,可以对起内存进行操作然后传送实现通信。
使用函数
1.int shmget(key_t key,size_t size,int shmflg)
创建共享内存
返回值为共享内存pid标识符
第一个参数,就是代表这个共享内存编号
第二个参数,代表着给共享内存的空间大小
第三个参数,0777|IPCREAT一般这样代表创建或者0代表一切为默认创建之后在另外进程可写0
2.void * shmat(int shmpid,const void *shmaddr,int shmflg)
映射可定义一个char *的变量在里写入内容一般用strcpy或者sprintf函数写入就行
第一个参数,共享内存pid
其余两个一般情况默认为0即可
3.shmdt(const void *shmaddr)
释放内容就是二函数那个写内容的指针可以直接释放
4.int shmctl(int shmpid,int cmd,struct shmpid_ds *buf)
释放共享内存函数
第一个参数pid
第二个参数是一些操作一般就写IPC_RMID
第三个参数默认为0即可
在这里插入图片描述
第一个进程是用来创建发送消息

在这里插入图片描述
这个进程创建之后用来接受消息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值