如何在程序中获得和共享内存相关联的所有进程号

发表于:2007-05-26来源:作者:点击数: 标签:
如何知道和共享内存关联的所有进程号,通过shmctl只能知道创建进程号以及最近访问进程号,不知哪位大虾有好办法,另外如何知道进程使用swap的情况,以上不要通过系统命令获得,我需要在程序中获得,谢谢 fly231 回复于:2003-06-27 13:25:28 我很急,希望高

如何知道和共享内存关联的所有进程号,通过shmctl只能知道创建进程号以及最近访问进程号,不知哪位大虾有好办法,另外如何知道进程使用swap的情况,以上不要通过系统命令获得,我需要在程序中获得,谢谢

 fly231 回复于:2003-06-27 13:25:28
我很急,希望高手不吝赐教

 蓝色键盘 回复于:2003-06-27 17:22:31
如何知道和共享内存关联的所有进程号,

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

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

可以永革结果维护pid

另外如何知道进程使用swap的情况,以上不要通过系统命令获得,我需要在程序中获得
/proc

 无双 回复于:2003-06-27 18:06:20
fuser命令可以
共享内存应该有文件映射吧

只要有文件映射的就可以通过fuser来查看

 夜未眠 回复于:2003-06-27 21:43:19
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:57
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:33
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:14
你们的回答都不对啊,shmctl的作用我自己已经写得很清楚了,但是所有关联的进程号无法获得啊,而且我需要在程序中获得,系统命令没有意义,swap我已经有办法了,现在就是共享内存所有关联进程号了,希望大家帮助

 jobman 回复于:2003-06-28 21:43:19
你说的问题我也遇到,共享内存有一个 nattch 字段,表示当前
有几个进程和该共享内存段连接,我想你是需要知道这是哪些进程,
可是看起来不太可能,恐怕得自己解决,因为在核心部分没有留下
相应得信息。至少我没有发现。

 tinywind 回复于:2003-06-29 01:53:51
共享内存好像没办法,linux下看看proc中有没有相关信息。

 fly231 回复于:2003-06-29 11:03:10
谢谢jobman和tinywind

 hilllee 回复于:2003-06-29 12:35:55
我在偷偷的跟着学

 yuxq 回复于:2003-09-26 17:59:18
如果非要完成这个功能,那就用mmap来创建共享内存,然后用lsof来判断某个应用是否映射了该共享内存。

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)