Chinaunix

标题: 如何在程序中获得和共享内存相关联的所有进程号 [打印本页]

作者: fly231    时间: 2003-06-27 10:53
标题: 如何在程序中获得和共享内存相关联的所有进程号
如何知道和共享内存关联的所有进程号,通过shmctl只能知道创建进程号以及最近访问进程号,不知哪位大虾有好办法,另外如何知道进程使用swap的情况,以上不要通过系统命令获得,我需要在程序中获得,谢谢
作者: fly231    时间: 2003-06-27 13:25
标题: 如何在程序中获得和共享内存相关联的所有进程号
我很急,希望高手不吝赐教
作者: 蓝色键盘    时间: 2003-06-27 17:22
标题: 如何在程序中获得和共享内存相关联的所有进程号
如何知道和共享内存关联的所有进程号,

具体需要关联到哪些进程,进程之间有没有什么关系

通过shmctl只能知道创建进程号以及最近访问进程号,不知哪位大虾有好办法,

可以永革结果维护pid

另外如何知道进程使用swap的情况,以上不要通过系统命令获得,我需要在程序中获得
/proc
作者: 无双    时间: 2003-06-27 18:06
标题: 如何在程序中获得和共享内存相关联的所有进程号
fuser命令可以
共享内存应该有文件映射吧

只要有文件映射的就可以通过fuser来查看
作者: 夜未眠    时间: 2003-06-27 21:43
标题: 如何在程序中获得和共享内存相关联的所有进程号
On My FreeBSD

$ ipcs -mp
Shared Memory:
T     ID     KEY        MODE       OWNER    GROUP  CPID  LPID
m 131072          0 --rwarwarwa     root    wheel    327    327
m 5767169          0 --rw-r--r--     root    wheel    327    537
m 11141122          0 --rwarwarwa      lyx    wheel   1166    327
m 5701636          0 --rw-r--r--     root    wheel    327   1166

$     

/usr/src/usr.bin/ipcs have source code. read it by yourself
作者: 夜未眠    时间: 2003-06-27 22:35
标题: 如何在程序中获得和共享内存相关联的所有进程号
i am sorry that doesn't understand your mean first time.sorry.sorry.
i don't know how to doit.i think list are manage by kernel,couldn't read it by process.
作者: gadfly    时间: 2003-06-28 13:16
标题: 如何在程序中获得和共享内存相关联的所有进程号
swap可以通过statfs来查看吧。

至于共享内存的attach个数可以通过,shmctl(segId, IPC_STAT, &ds);取struct shmid_ds ds的成员
  unsigned short int shm_nattch;        /* number of current attaches */
来获得。

fuser恐怕只对文件的打开起作用。
作者: fly231    时间: 2003-06-28 14:27
标题: 如何在程序中获得和共享内存相关联的所有进程号
你们的回答都不对啊,shmctl的作用我自己已经写得很清楚了,但是所有关联的进程号无法获得啊,而且我需要在程序中获得,系统命令没有意义,swap我已经有办法了,现在就是共享内存所有关联进程号了,希望大家帮助
作者: jobman    时间: 2003-06-28 21:43
标题: 如何在程序中获得和共享内存相关联的所有进程号
你说的问题我也遇到,共享内存有一个 nattch 字段,表示当前
有几个进程和该共享内存段连接,我想你是需要知道这是哪些进程,
可是看起来不太可能,恐怕得自己解决,因为在核心部分没有留下
相应得信息。至少我没有发现。
作者: tinywind    时间: 2003-06-29 01:53
标题: 如何在程序中获得和共享内存相关联的所有进程号
共享内存好像没办法,linux下看看proc中有没有相关信息。
作者: fly231    时间: 2003-06-29 11:03
标题: 如何在程序中获得和共享内存相关联的所有进程号
谢谢jobman和tinywind
作者: hilllee    时间: 2003-06-29 12:35
标题: 如何在程序中获得和共享内存相关联的所有进程号
我在偷偷的跟着学
作者: yuxq    时间: 2003-09-26 17:59
标题: 如何在程序中获得和共享内存相关联的所有进程号
如果非要完成这个功能,那就用mmap来创建共享内存,然后用lsof来判断某个应用是否映射了该共享内存。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2