已经获取到进程的pid了,怎么才能获取这个进程所占内存大小呢?

bluefish625 2011-12-06 04:52:11
我想通过系统调用获取特定进程占有的内存量,还有CPU占有率.

#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>

#define RUSAGE_SELF 0
#define RUSAGE_CHILDREN -1

int getrusage(int who, struct rusage *rusage);

函数返回后,在rusage所指结构中有一个成员long ru_ixrss; /* integral shared memory size */(这是man page 中的注释)

我把整个结构也给出来:
struct rusage {
struct timeval ru_utime; /* user time used */
struct timeval ru_stime; /* system time used */
long ru_maxrss; /* max resident set size */
long ru_ixrss; /* integral shared memory size */
long ru_idrss; /* integral unshared data */
long ru_isrss; /* integral unshared stack */
long ru_minflt; /* page reclaims */
long ru_majflt; /* page faults */
long ru_nswap; /* swaps */
long ru_inblock; /* block input operations */
long ru_oublock; /* block output operations */
long ru_msgsnd; /* messages sent */
long ru_msgrcv; /* messages received */
long ru_nsignals; /* signals received */
long ru_nvcsw; /* voluntary context switches */
long ru_nivcsw; /* involuntary " */
};

这个数据结构里面的数据好像都不正确啊。

有其他方法么?
...全文
330 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluefish625 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 axengine 的回复:]

我们一般是从/proc文件系统取值
[/Quote]

怎么用呢? 我是想在mac os下面弄。
「已注销」 2011-12-06
  • 打赏
  • 举报
回复
我们一般是从/proc文件系统取值

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧