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

📄 interface.c~

📁 gtk编程glade2制作界面的linux下的任务管理器 显示系统信息 进程信息 CPU占用率
💻 C~
📖 第 1 页 / 共 2 页
字号:
/* * DO NOT EDIT THIS FILE - it is generated by Glade. */#ifdef HAVE_CONFIG_H#  include <config.h>#endif#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include <fcntl.h>#include <time.h>#include <stdlib.h>#include <gdk/gdkkeysyms.h>#include <gtk/gtk.h>#include "callbacks.h"#include "interface.h"#include "support.h"#include "rd_proc.h"#include <signal.h>#define GLADE_HOOKUP_OBJECT(component,widget,name) \  g_object_set_data_full (G_OBJECT (component), name, \    gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \  g_object_set_data (G_OBJECT (component), name, widget)/*******************************************************************/gdouble rate = 0;gdouble fuser = 0;							//先前CPU使用信息gdouble ftotal = 0;							//先前CPU使用总量	gdouble total = 0;gboolean get_cpu_rate ( gpointer data)//获得cpu使用率{  int fd,i;  gchar buffer[256];  gchar *cpu_time[9];  gchar *tmp;  gchar *delim =  " ";  gdouble cuser;  gdouble ctotal;GtkWidget *progressbar1=(GtkWidget *)data;	  fd = open ("/proc/stat", O_RDONLY);//读取相关文件  read (fd, buffer, sizeof (buffer));  close (fd);  tmp = strstr (buffer, "cpu0");//从开始到以"cpu0"为结束符的buffer的一部分字符到tmp  tmp--;  *tmp = '\0';  cpu_time[0] = strtok (buffer, delim);//通过字符串分割得到目的字符串  for (i = 1; i < 9 ; i++) {	   cpu_time[i] = strtok (NULL, delim);  }  cuser = atoi (cpu_time[1]);//将字符串转换为长整数  ctotal = (cuser + atoi (cpu_time[2]) + atoi (cpu_time[3]) + atoi (cpu_time[4]));  total = ctotal - ftotal;  rate = (cuser - fuser) / total;  fuser = cuser;  ftotal = ctotal;  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(progressbar1),rate);   return TRUE;}/*******************************************************************/gboolean get_cpu_rate1 ( gpointer data)//获得cpu使用率{  gchar buff[256];	GtkWidget *label19=(GtkWidget *)data;rate=rate*100;  sprintf(buff,"%2.1f",rate);  //itoa((int)rate,buff,10);  gtk_label_set_text(GTK_LABEL(label19),buff);  return TRUE;}GtkWidget *treeview1;int pid=0;char proc_buff[256][5][32];void selection_r(GtkWidget *clist,gint row,gint colunm,GdkEventButton *event,gpointer data){    gchar *text;    gtk_clist_get_text(GTK_CLIST(clist),row,colunm,&text);    pid=atoi(proc_buff[row][2]);}voidon_button1_clicked                     (GtkButton       *button,                                        gpointer         user_data){	gtk_clist_clear(treeview1);	int i;  	char *buff[5];  	//char *titles[]={"    进程名         " ,"  状态    ", "pid","nice","虚拟内存"};  	int num_proc;	  	//treeview1 =gtk_clist_new_with_titles(5,titles);  	//gtk_signal_connect(GTK_OBJECT(treeview1),"select_row",GTK_SIGNAL_FUNC(selection_r),NULL);  	num_proc=rd_proc(proc_buff);    	for(i=0;i<num_proc;i++){		buff[0] = proc_buff[i][0];	buff[1] = proc_buff[i][1];	buff[2] = proc_buff[i][2];	buff[3] = proc_buff[i][3];	buff[4] = proc_buff[i][4];  	gtk_clist_append((GtkCList *)treeview1,buff);	  }  gtk_widget_show (treeview1);	}voidon_button2_clicked                     (GtkButton       *button,                                        gpointer        user_data){	kill(pid,SIGKILL);}/*******************************************************************/char buffer[1024],buf[1024]={0},*tempstr1,*tempstr2;int fd,count,count1=0;/*******************************************************************/gint progress_timeout_time( gpointer data){	char buf1[1024]={0};	GtkWidget *label7=(GtkWidget *)data;	  	fd=open("/proc/uptime",O_RDWR,S_IRWXG);			count=read(fd,buffer,1024);		buffer[count-1]='\0';	tempstr1=buffer;	count1=0;	while((*tempstr1)!=' '){		count1++;		tempstr1++;	}	strncat (buf1,buffer,count1);	strcat(buf1,"  秒");	gtk_label_set_text(GTK_LABEL(label7),buf1);	return TRUE;}gint progress_timeout_time1( gpointer data){	char buf[1024]={0};	GtkWidget *label17=(GtkWidget *)data;	time_t timer;	struct tm  *timenow;	timer=time(NULL);	timenow = localtime(&timer);	strncat(buf,asctime(timenow)+11,8);	gtk_label_set_text(GTK_LABEL(label17),buf);	return TRUE;}gint progress_timeout_time2( gpointer data){		GtkWidget *label24=(GtkWidget *)data;	fd=open("/proc/meminfo",O_RDWR,S_IRWXG);		count=read(fd,buffer,1024);	buffer[count-1]='\0';	tempstr1 = strstr(buffer,"MemFree");	tempstr2 = strchr(tempstr1,':');	tempstr2+=2;	tempstr1=tempstr2;	count1=0;	while((*tempstr1)!='\n'){		count1++;		tempstr1++;	}	*buf='\0';	strncat (buf,tempstr2,count1);		gtk_label_set_text(GTK_LABEL(label24),buf);	return TRUE;}GtkWidget*create_window1 (void){  GtkWidget *window1;  GtkWidget *notebook1;  GtkWidget *fixed1;  GtkWidget *image1;  GtkWidget *frame2;  GtkWidget *alignment2;  GtkWidget *fixed5;  GtkWidget *label26;  GtkWidget *label27;  GtkWidget *label10;  GtkWidget *label29;  GtkWidget *label30;  GtkWidget *label28;  GtkWidget *label25;  GtkWidget *label9;  GtkWidget *label8;  GtkWidget *label4;  GtkWidget *label5;  GtkWidget *label11;  GtkWidget *label7;  GtkWidget *label16;  GtkWidget *label17;  GtkWidget *label31;  GtkWidget *label1;  GtkWidget *fixed2;  GtkWidget *progressbar1;  GtkWidget *frame1;  GtkWidget *alignment1;  GtkWidget *fixed4;  GtkWidget *label23;  GtkWidget *label22;  GtkWidget *label21;  GtkWidget *label24;  GtkWidget *label20;  GtkWidget *button3;  GtkWidget *button4;  GtkWidget *label19;  GtkWidget *label18;  GtkWidget *label2;  GtkWidget *fixed3;  GtkWidget *scrolledwindow1;  //GtkWidget *treeview1;  GtkWidget *button1;  GtkWidget *button2;  GtkWidget *label3;  window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);  gtk_window_set_title (GTK_WINDOW (window1), _("\347\263\273\347\273\237\347\233\221\350\247\206\345\231\250"));  notebook1 = gtk_notebook_new ();  gtk_widget_show (notebook1);  gtk_container_add (GTK_CONTAINER (window1), notebook1);  fixed1 = gtk_fixed_new ();  gtk_widget_show (fixed1);  gtk_container_add (GTK_CONTAINER (notebook1), fixed1);  image1 = create_pixmap (window1, "1.JPG");  gtk_widget_show (image1);  gtk_fixed_put (GTK_FIXED (fixed1), image1, 8, 0);  gtk_widget_set_size_request (image1, 176, 248);  frame2 = gtk_frame_new (NULL);  gtk_widget_show (frame2);  gtk_fixed_put (GTK_FIXED (fixed1), frame2, 216, 64);  gtk_widget_set_size_request (frame2, 320, 96);  gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_NONE);  alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);  gtk_widget_show (alignment2);  gtk_container_add (GTK_CONTAINER (frame2), alignment2);  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment2), 0, 0, 12, 0);  fixed5 = gtk_fixed_new ();  gtk_widget_show (fixed5);  gtk_container_add (GTK_CONTAINER (alignment2), fixed5);  gtk_widget_set_size_request (fixed5, 300, 128);  label26 = gtk_label_new (_("\344\270\273\351\242\221"));  gtk_widget_show (label26);  gtk_fixed_put (GTK_FIXED (fixed5), label26, 32, 24);  gtk_widget_set_size_request (label26, 46, 17);  label27 = gtk_label_new (_("\347\274\223\345\255\230"));  gtk_widget_show (label27);  gtk_fixed_put (GTK_FIXED (fixed5), label27, 32, 40);  gtk_widget_set_size_request (label27, 48, 16);  label10 = gtk_label_new (_("\345\236\213\345\217\267"));  gtk_widget_show (label10);  gtk_fixed_put (GTK_FIXED (fixed5), label10, 24, 8);  gtk_widget_set_size_request (label10, 64, 16);/*******************************************************************/  fd=open("/proc/sys/kernel/hostname",O_RDWR,S_IRWXG);  count=read(fd,buffer,1024);  buffer[count-1]='\0';  label4 = gtk_label_new(buffer);/*******************************************************************/   gtk_widget_show (label4);  gtk_fixed_put (GTK_FIXED (fixed1), label4, 304, 16);  gtk_widget_set_size_request (label4, 184, 16);/*******************************************************************/  //fd=open("/proc/sys/kernel/osrelease",O_RDWR,S_IRWXG);FILE *fp = fopen("/proc/sys/kernel/osrelease", "r");  //*buffer='\0';  //count=read(fd,buffer,1024);  //buffer[count-1]='\0';fgets(buffer, 1024, fp);fclose(fp);  label5 = gtk_label_new(buffer);/*******************************************************************/   gtk_widget_show (label5);  gtk_fixed_put (GTK_FIXED (fixed1), label5, 296, 32);  gtk_widget_set_size_request (label5, 200, 16);/*******************************************************************/   label7 = gtk_label_new (" ");  gtk_timeout_add (1000, progress_timeout_time,label7);  gtk_widget_show (label7);  gtk_fixed_put (GTK_FIXED (fixed1), label7, 360, 168);  gtk_widget_set_size_request (label7, 128, 16);/*******************************************************************/ 	label17 = gtk_label_new (" ");	gtk_timeout_add (1000, progress_timeout_time1,label17);  //label17 = gtk_label_new (_("label17"));  gtk_widget_show (label17);  gtk_fixed_put (GTK_FIXED (fixed1), label17, 352, 184);  gtk_widget_set_size_request (label17, 152, 16);/*******************************************************************/ 	fd=open("/proc/cpuinfo",O_RDWR,S_IRWXG);	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -