如何在C

时间:2017-10-11 19:36:41

标签: linux

我需要编写一个C / C ++代码,以便从进程状态中获取以下信息:

  

struct timespec utime; //用户时间

     

struct timespec stime; //系统时间

     

size_t dsize; //数据大小

     

size_t shmsize; //共享内存大小(已创建)

     

size_t vshmsize; //共享内存大小(已使用)

目前我已经为Solaris实现了这个,但是如何在Red Hat中获取此信息,是否有任何API可以执行此操作?

在Solaris上,我可以读取结构的进程状态,如下所示:

static int readPStat(pid_t processid, pstatus_t *ret)
{
  char pfile[256];
  int  stat=-1;

  sprintf(pfile,"/proc/%d/status", processid);
  stat =open(pfile,O_RDONLY))
  read( stat, ret, sizeof(pstatus_t)) );
  .......
}

int getProcessInfo (  )
{
  pid_t     processid;
  pstatus_t procStat;
  int       dSize;
  .......
  readPStat(processid, &procStat) 
  .......

  dSize = psinfo.pr_rssize;
}

我尝试过做一些研究,但未能找到关于如何在Red Hat中做到这一点的明确答案。

0 个答案:

没有答案