我想找到给定进程使用的所有共享内存段。我特别感兴趣的是找出shmid所以我可以在调用shmctl()时使用它。
在Solaris上我只读取/ proc / $ PID / map来找出该信息(字段pr_shmid)。 该文件的内容由sys / procfs中的struct prmap_t定义。
AIX还有一个/ proc / $ PID / map文件。还有一个struct prmap,但不幸的是它缺少pr_shmid字段。
我是如何在AIX5.3 +上实现这一目标的?
答案 0 :(得分:1)
我不特别了解AIX,但我认为ipcs
命令是支持SysV IPC的相当标准的,所以我希望ipcs -m
命令提供适当的信息;如果你找不到更好的方法,解析那个输出可能是一个选项。
答案 1 :(得分:0)
svmon -P将按类型列出进程内存段。
您还可以使用-S查看哪些PID附加到段。使用-S,首先运行ipcs -bmS,然后将SID与0x一起使用,并将其与
一起使用svmon -lS [SID]
这将返回附加的PID。