C++共享内存常用操作

  1. 查看共享内存的使用以及删除共享内存
    1. 取得ipc信息:
    2. 删除ipc
    3. 批量清除共享内存

查看共享内存的使用以及删除共享内存

ipcs 命令和 ipcrm 命令

取得ipc信息:

ipcs [-m|-q|-s]

-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出有关“遮断器”(semaphore)的信息

ipcs -m

列含义:

NATTCH 连接在关联的共享内存段的进程数

删除ipc

ipcrm -m|-q|-s

[-q msqid] [-m shmid] [-s semid]
[-Q msgkey] [-M shmkey] [-S semkey]

例如,我们在以 0x12345678 为 KEY 创建了一个共享内存,可以直接使用 ipcrm -M 0x12345678 来删除共享内存区域。

批量清除共享内存

下列代码的含义是:当第六列nattch== 0 时,清除第二列shmid的共享内存id

#!/bin/bash
ipcs -m | awk '$6==0 {print $2}' |
while read s
do
    printf "del shm, shmid:%d\n" $s
    ipcrm -m $s
done

Linux共享内存使用常见陷阱与分析

参考:
https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.cmds3/ipcs.htm


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 using1174@foxmail.com

文章标题: C++共享内存常用操作

文章字数: 237

本文作者: Jun

发布时间: 2018-06-25, 12:27:00

最后更新: 2018-10-15, 20:48:22

原始链接: http://yoursite.com/2018/06/25/C-共享内存常用操作/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏