独孤九贱 发表于 2005-10-18 11:21

如何获取CPU使用率?

在Linux下如何编程获取CPU使用率呢?在/proc下边,只有cpuinfo,loadavg,这两个文件都没有CPU使用率,只有一个1/5/15分钟的平均负载,如何像top那样得到:
cpu status:%XX user……
请教……
或者top for linux源码在哪儿可以下到吧,偶只到找for unix的,找了半天

bleem1998 发表于 2005-10-18 12:19

如何获取CPU使用率?

是不是读的/proc/stat文件阿
不是cpuinfo吧

jeffwang8001 发表于 2005-10-18 12:36

如何获取CPU使用率?


1/5/15分钟的平均负载

这不就是cpu利用率吗

独孤九贱 发表于 2005-10-18 12:59

如何获取CPU使用率?

原帖由 "jeffwang8001" 发表:

这不就是cpu利用率吗

是读“cpu status:%XX user %XXX system…… ”这样的使用情况

duanjigang 发表于 2005-10-23 18:56

如何获取CPU使用率?

char* cpu(void)
{
    unsigned int total;
   
    float user;
    float nice;
    float system;
    float idle;

    char cpu;
    char text;

    FILE *fp;

    fp = fopen("/proc/stat", "r");
    while (fgets(text, 200, fp))
    {
      if (strstr(text, "cpu"))
      {
            sscanf(text, "%s %f %f %f %f", cpu, &user, &nice, &system, &idle);
      }
    }
    fclose(fp);

    total = (user + nice + system + idle);
    user = (user / total) * 100;
    nice = (nice / total) * 100;
    system = (system / total) * 100;
    idle = (idle / total) * 100;

    snprintf(cpu, 21, "%4.2f %4.2f %3.2f %4.2f", user, nice, system, idle);

    return(cpu);
}

ChinaOK 发表于 2005-10-23 23:47

如何获取CPU使用率?

也是论坛里找的。

trap 'echo "$CN\c";trap 0;exit' 0 2 3 15
       trap 'trap 0;exit' 1
       N=`tput lines`
       EL=`tput el` ED=`tput ed` CL=`tput clear` HO=`tput home`
       CF=`tput civis` CN=`tput cnorm` F="%12.2f%3d$ED$HO"
       echo "$CF$CL\c"
       HDR="`ps -p1 -opid -opcpu -oc -oargs | head -1`"
       while :
       do
         ps -e -opid= -opcpu= -oc= -oargs= |
         sort -rn +1 |
         awk -v H="$HDR" -v N="$N" -v E="$EL" -v F="$F" '
         BEGIN{print H;N-=2}
         $2>;0||$3{print substr($0,1,79) E;P+=$2;C+=$3}
         NR>;=N{exit}
         END{printf F,P,C}'
         sleep ${1-1}# sleep time on script's command line (default 1 sec.)
       done

独孤九贱 发表于 2005-10-28 11:29

如何获取CPU使用率?

原帖由 "duanjigang" 发表:

    FILE *fp;

    fp = fopen("/proc/stat", "r");
    while (fgets(text, 200, fp))
    {
      if (strstr(text, "cpu"))
      {
            sscanf(text, "%s %f %f %f %f", cpu, &user, &ni..........

强烈感谢你!!!

mq110 发表于 2005-10-28 11:34

如何获取CPU使用率?

说个细节问题.

他返回栈上变量了.

sealdad 发表于 2005-10-28 14:05

如何获取CPU使用率?

弱弱的问一句:nice是什么意思?

LaKes 发表于 2005-10-28 14:10

如何获取CPU使用率?

man nice
页: [1] 2 3
查看完整版本: 如何获取CPU使用率?