列出AIX5.3 +上进程使用的所有共享内存段

时间:2010-01-22 13:52:41

标签: unix shared-memory aix procfs

我想找到给定进程使用的所有共享内存段。我特别感兴趣的是找出shmid所以我可以在调用shmctl()时使用它。

在Solaris上我只读取/ proc / $ PID / map来找出该信息(字段pr_shmid)。 该文件的内容由sys / procfs中的struct prmap_t定义。

AIX还有一个/ proc / $ PID / map文件。还有一个struct prmap,但不幸的是它缺少pr_shmid字段。

我是如何在AIX5.3 +上实现这一目标的?

2 个答案:

答案 0 :(得分:1)

我不特别了解AIX,但我认为ipcs命令是支持SysV IPC的相当标准的,所以我希望ipcs -m命令提供适当的信息;如果你找不到更好的方法,解析那个输出可能是一个选项。

答案 1 :(得分:0)

svmon -P将按类型列出进程内存段。

您还可以使用-S查看哪些PID附加到段。使用-S,首先运行ipcs -bmS,然后将SID与0x一起使用,并将其与

一起使用

svmon -lS [SID]

这将返回附加的PID。