📄 main.c
字号:
#include <stdio.h>#include <stdlib.h>#include <gtk/gtk.h>#include <dirent.h>#include <string.h>GtkWidget *ssslabel;GtkWidget *rrrlabel;void restart(void){ system("reboot");}void shutdown(void){ system("halt");}gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ){ gtk_main_quit (); return FALSE;}void get_cpu_rate(float *temp){ FILE * fp; int i=0; float cpu,sum,user,nice,system,idle,iowait,irq,softirq; char _buf1[256]; char *buf1 = _buf1; fp=fopen("/proc/stat","r"); fgets(buf1,256,fp); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } for(;i<256;i++){ if(buf1[i]!=' ') break; } buf1=buf1+i; user=atof(buf1); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } for(;i<256;i++){ if(buf1[i]!=' ') break; } buf1+=i; nice=atof(buf1); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } for(;i<256;i++){ if(buf1[i]!=' ') break; } buf1+=i; system=atof(buf1); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } for(;i<256;i++){ if(buf1[i]!=' ') break; } buf1+=i; idle=atof(buf1); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } for(;i<256;i++){ if(buf1[i]!=' ') break; } buf1+=i; iowait=atof(buf1); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } for(;i<256;i++){ if(buf1[i]!=' ') break; } buf1+=i; irq=atof(buf1); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } for(;i<256;i++){ if(buf1[i]!=' ') break; } buf1+=i; softirq=atof(buf1); cpu=user+nice+system+idle+iowait+irq+softirq; sum=user+nice+system; temp[2]=(sum-temp[0])/(cpu-temp[1]); temp[0]=sum; temp[1]=cpu; sprintf(buf1,"CPU使用率:%.2f%%",temp[2]*100); gtk_label_set_text(GTK_LABEL(ssslabel),buf1); return;}void get_mem_info(void){ FILE * fp; int i=0; char _buf1[100],_buf2[100],_buf3[100],_buf4[100]; char *buf1=_buf1; char *buf2=_buf2; char *buf3=_buf3; char *buf4=_buf4; char buffer[1000]; fp=fopen("/proc/meminfo","r"); fgets(buf1,50,fp); for(i=0;i<50;i++){ if(buf1[i]==' ') break; } for(;i<50;i++){ if(buf1[i]!=' ') break; } buf1+=i; buf1[12]='\0'; fgets(buf2,50,fp); for(i=0;i<50;i++){ if(buf2[i]==' ') break; } for(;i<50;i++){ if(buf2[i]!=' ') break; } buf2+=i; buf2[12]='\0'; for(i=0;i<10;i++){ fgets(buf3,50,fp); } for(i=0;i<50;i++){ if(buf3[i]==' ') break; } for(;i<50;i++){ if(buf3[i]!=' ') break; } buf3+=i; buf3[12]='\0'; fgets(buf4,50,fp); for(i=0;i<50;i++){ if(buf4[i]==' ') break; } for(;i<50;i++){ if(buf4[i]!=' ') break; } buf4+=i; buf4[12]='\0'; fclose(fp); sprintf(buffer,"总内存:%s 剩余内存:%s\n总Swap:%s 剩余Swap:%s\n",buf1,buf2,buf3,buf4); gtk_label_set_text(GTK_LABEL(rrrlabel),buffer); return;}gint func(gpointer temp){ get_cpu_rate((float *)temp); get_mem_info(); return TRUE;} char *get_cpu_name(char *buf1){ FILE * fp; int i=0; fp=fopen("/proc/cpuinfo","r"); for(i=0;i<5;i++){ fgets(buf1,256,fp); } for(i=0;i<256;i++){ if(buf1[i]==':') break; } i+=2; buf1+=i; buf1[31]='\0'; fclose(fp); return buf1;}char *get_cpu_type(char *buf2){ FILE * fp; int i=0; fp=fopen("/proc/cpuinfo","r"); for(i=0;i<2;i++){ fgets(buf2,256,fp); } for(i=0;i<256;i++){ if(buf2[i]==':') break; } i+=2; buf2+=i; buf2[12]='\0'; fclose(fp); return buf2;}char *get_cpu_f(char *buf3){ FILE * fp; int i=0; fp=fopen("/proc/cpuinfo","r"); for(i=0;i<7;i++){ fgets(buf3,256,fp); } for(i=0;i<256;i++){ if(buf3[i]==':') break; } i+=2; buf3+=i; buf3[8]='\0'; fclose(fp); return buf3;}char *get_cache_size(char *buf4){ FILE * fp; int i=0; fp=fopen("/proc/cpuinfo","r"); for(i=0;i<8;i++){ fgets(buf4,256,fp); } for(i=0;i<256;i++){ if(buf4[i]==':') break; } i+=2; buf4+=i; buf4[10]='\0'; fclose(fp); return buf4;}char *get_system_type(char *buf1){ FILE * fp; int i=0; fp=fopen("/proc/version","r"); fgets(buf1,256,fp); for(i=0;i<256;i++){ if(buf1[i]==' ') break; } buf1[i]='\0'; fclose(fp); return buf1;}char *get_system_version(char *buf2){ FILE * fp; int i=0; fp=fopen("/proc/version","r"); fgets(buf2,256,fp); for(i=0;i<256;i++){ if(buf2[i]=='2') break; } buf2+=i; for(i=0;i<256;i++){ if(buf2[i]==' ') break; } buf2[i]='\0'; fclose(fp); return buf2;}char *get_gcc_version(char *buf3){ FILE * fp; int i=0; int j=0; fp=fopen("/proc/version","r"); fgets(buf3,256,fp); for(i=0,j=0;i<256&&j<6;i++){ if(buf3[i]==' ') j++; } buf3+=i; for(i=0;i<256;i++){ if(buf3[i]==')') break; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -