📄 interface.c~
字号:
/* * 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 + -