mmap和shmget的区别

  1. 二者本质上是类似的,mmap可以看到文件的实体,而 shmget 对应的文件在交换分区上的 shm 文件系统内,无法直接 cat 查看

  2. 安全性:mmap 方式对应的真实文件,如果用户有权限即可查看,甚至删除
                     shmget 方式其实也一样,好了一层皮罢了(ipcrm -m …)

  3. 一致性:mmap 方式下各进程映射文件的相同部分可以共享内存
                     shmget 时各个进程共享同一片内存区
        不建议使用交叠的方式使用 mmap

  4. 持续性:进程挂了重启不丢失内容,二者都可以做到
                     机器挂了重启,mmap 可以不丢失内容(文件内保存了OS同步过的映像),而 shmget 会丢失

  5. 易用性:mmap 的接口会简单一些

  6. 通用性:posix 的 mmap 会相对广泛一些

  7. 其他:mmap在某些内核版本下会频繁读写磁盘,需要注意一下

如果你担心会因误删文件导致 mmap 出错,那就用 shmget 吧,否则的话直接mmap就可以了,用起来简单一些 : )

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值