⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这是一个针对linux操作系统的任务管理器
💻 C
📖 第 1 页 / 共 2 页
字号:
#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 + -