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

📄 myviewwin3.c

📁 在Linux下实现文件的拷贝
💻 C
📖 第 1 页 / 共 2 页
字号:
     参数3:指向一个gtk_accel_group的指针。套件在生成菜单时设置            好加速表(accelerator table)。  */  item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", 				       accel_group);  /* 这个函数生成菜单项。把数组里项的数量,数组自身,和菜单项的任     意回调数据依次传递给套件。 */  gtk_item_factory_create_items (item_factory, nmenu_items, menu_items, NULL);  /* 把新的加速组绑定到窗口。 */  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);  if (menubar)    /* 最后,返回套件已经创建的菜单栏。 */     *menubar = gtk_item_factory_get_widget (item_factory, "<main>");}/* 创建一个"信息"列表 */GtkWidget * create_list(struct fileinfo *file,int n){    int i;   GtkListStore * model;   GtkTreeIter iter;   GtkCellRenderer *cell;   GtkTreeViewColumn *column;   GtkWidget *tree_view;   GtkWidget *scrolled_window;   struct fileinfo *fileline;   char *mulu[]={"根目录"," 进程名"," 大小","  连接文件","  用户ID", "组ID"," 统计","  大小 ", " 时间"};   char *mulu1[]={"   Name   ","   State","SleepAVG","Pid","  Mems","   SigQ"};   FILE *fp;   char buffer[1024*5];   size_t bytesRead;   char *match;   int IntCpuRate,key;   struct fileinfo *statisc;         int user_1,nice_1,sys_1,idle_1,total_1;   int user_2,nice_2,sys_2,idle_2,total_2;//if(n==0||n==1||n==2)//{    /* 创建一个新的滚动窗口(scrolled window),只有需要时,滚动条才出现 */    scrolled_window = gtk_scrolled_window_new (NULL, NULL);    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),				    GTK_POLICY_AUTOMATIC, 				    GTK_POLICY_AUTOMATIC); if(n!=0&&n!=2){      model = gtk_list_store_new (7, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING);    tree_view = gtk_tree_view_new ();    gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),                                            tree_view);    gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));    gtk_widget_show (tree_view);   }    /* 在窗口中添加一些消息 */   if(n==0)  {     model = gtk_list_store_new (8, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT,G_TYPE_UINT,     G_TYPE_UINT,G_TYPE_UINT,G_TYPE_STRING);                     tree_view = gtk_tree_view_new ();    gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),                                            tree_view);    gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));    gtk_widget_show (tree_view);     for(fileline=file;fileline!=NULL;fileline=fileline->next)           {        gchar *msg = g_strdup_printf ("%10s",fileline-> dir );        gchar *msg1 = g_strdup_printf("%10s",fileline ->tiaomu);        gchar *msg2 = g_strdup_printf("%10s",fileline ->time);         gtk_list_store_append (GTK_LIST_STORE (model), &iter);        gtk_list_store_set (GTK_LIST_STORE (model), &iter,0, msg,  1,msg1,2,fileline -> size1,3,fileline -> nlink,4,fileline -> uid,5,fileline -> gid,6,fileline -> size2,7,msg2 ,-1);	     g_free (msg);g_free (msg1);g_free (msg2);		           }    for(key=0;key<8;key++)        {     cell = gtk_cell_renderer_text_new ();     column = gtk_tree_view_column_new_with_attributes (mulu[key],cell,"text",  key,NULL);     gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),GTK_TREE_VIEW_COLUMN (column));         }     return scrolled_window;   }if(n==1){     for(fileline=file;fileline!=NULL;fileline=fileline->next)           {        gchar *msg = g_strdup_printf ("%s",fileline->tiaomu1);        gtk_list_store_append (GTK_LIST_STORE (model), &iter);        gtk_list_store_set (GTK_LIST_STORE (model), &iter,0, msg,  -1);	     g_free (msg);           }cell = gtk_cell_renderer_text_new ();     column = gtk_tree_view_column_new_with_attributes ("Messages",cell,"text",  0,NULL);       gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),	  		         GTK_TREE_VIEW_COLUMN (column));     return scrolled_window; }if(n==2){     model = gtk_list_store_new (6, G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING);    tree_view = gtk_tree_view_new ();    gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),                                            tree_view);    gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));    gtk_widget_show (tree_view);     for(fileline=file;fileline!=NULL;fileline=fileline->next)           {        gchar *msg1 = g_strdup_printf ("%s",fileline->tiaomu1);        gchar *msg2 = g_strdup_printf ("%s",fileline->tiaomu2);        gchar *msg3 = g_strdup_printf ("%s",fileline->tiaomu3);        gchar *msg4 = g_strdup_printf ("%s",fileline->tiaomu4);        gchar *msg5 = g_strdup_printf ("%s",fileline->tiaomu5);        gchar *msg6 = g_strdup_printf ("%s",fileline->tiaomu6);        gtk_list_store_append (GTK_LIST_STORE (model), &iter);        gtk_list_store_set (GTK_LIST_STORE (model), &iter,0, msg1,1, msg2,2, msg3,3, msg4,4, msg5,5,msg6,-1);	     g_free (msg1);g_free (msg2);g_free (msg3);g_free (msg4);g_free (msg5);g_free (msg6);           }   for(key=0;key<6;key++)       {     cell = gtk_cell_renderer_text_new ();     column = gtk_tree_view_column_new_with_attributes (mulu1[key],cell,"text",  key,NULL);     gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),GTK_TREE_VIEW_COLUMN (column));         }     return scrolled_window;   //  cell = gtk_cell_renderer_text_new ();   //  column = gtk_tree_view_column_new_with_attributes ("       Name       State        SleepAVG      Pid     Mems            SigQ",cell,"text",  0,NULL);      // gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),	  		        // GTK_TREE_VIEW_COLUMN (column));    // return scrolled_window; }    if(n==3){               statisc=tongji();     fp = fopen("/proc/stat","r");      if (fp == 0)                         printf("open /proc/stat file error\n");      bytesRead = fread(buffer, 1, sizeof(buffer),fp);      fclose(fp);      if (bytesRead == 0 || bytesRead == sizeof(buffer))          printf("readBytes NULL OR large than buffer \n");      buffer[bytesRead] = '\0';      match = strstr (buffer, "cpu");      if (match == NULL)          printf("match error\n");      sscanf (match ,"cpu %d %d %d %d", &user_1, &nice_1, &sys_1, &idle_1);/*second read /proc/stat file calculate CPU avg*/      sleep(1);     fp = fopen("/proc/stat","r");      if (fp == 0)                         printf("open /proc/stat file error\n");      bytesRead = fread(buffer, 1, sizeof(buffer),fp);      fclose(fp);      if (bytesRead == 0 || bytesRead == sizeof(buffer))          printf("readBytes NULL OR large than buffer \n");      buffer[bytesRead] = '\0';      match = strstr (buffer, "cpu");      if (match == NULL)          printf("match error\n");      sscanf (match ,"cpu %d %d %d %d", &user_2, &nice_2, &sys_2, &idle_2);      total_1 = user_1 + nice_1 + sys_1 + idle_1;      total_2 = user_2 + nice_2 + sys_2 + idle_2;       IntCpuRate =(int)(((float)((user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1))/(float)(total_2 - total_1) )*100);      // printf( "    rate :%d%\n",IntCpuRate );        if(!file)                  {        gchar *msg = g_strdup_printf ("CPU信息:\nuser:%10d \nnice: %10d \nsys: %10d \nidle %10d  \n rate :%10d%\n,主存信息:\nMemTotal: %dKB\nMemFree: %dKB\nBuffers: %dKB\nCached: %dKBSwapCached: %dKB\nrate: %d%\n",user_1, nice_1, sys_1, idle_1,IntCpuRate ,statisc->tongji[0],statisc->tongji[1],statisc->tongji[2],statisc->tongji[3],statisc->tongji[4],statisc->frequent);        gtk_list_store_append (GTK_LIST_STORE (model), &iter);        gtk_list_store_set (GTK_LIST_STORE (model), &iter,0, msg,  -1);	     g_free (msg);                   }cell = gtk_cell_renderer_text_new ();     column = gtk_tree_view_column_new_with_attributes ("Messages",cell,"text",  0,NULL);       gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),	  		         GTK_TREE_VIEW_COLUMN (column));     return scrolled_window;}    }int main( int argc,          char *argv[] ){  GtkWidget *window;  static GtkWidget *window1;  GtkWidget *main_vbox;  GtkWidget *sub1_vbox;  GtkWidget *box;  GtkWidget *menubar;  GtkWidget *table;  GtkWidget *label;  GtkWidget *notebook;  GtkWidget *button;  GtkWidget *scrolled_window;  GtkWidget *vpaned;  GtkWidget *list;  GtkWidget *text;  DIR *dirp;  struct dirent *direntp;  struct stat statbuf;  struct fileinfo * test,*headp,*test1;  struct fileinfo *nodehome[4];  char buf[80];  char * read;  FILE *fp;  static  int mark;  char *bufferl[4]={"proc文件信息",  "主机信息", "进程信息","资源"}; if(stat(argv[1],&statbuf)<0)        perror(argv[1]);  if((statbuf.st_mode&S_IFMT)==S_IFDIR) nodehome[0]=listcheck(argv[1]); nodehome[1]=readhost(); nodehome[2]=readthread(argv[1]); nodehome[3]=NULL;  gtk_init (&argc, &argv);    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  g_signal_connect (G_OBJECT (window), "delete_event",	              G_CALLBACK (delete), NULL);  g_signal_connect (G_OBJECT (window), "destroy", 		    G_CALLBACK (gtk_main_quit), 		    NULL);  gtk_window_set_title (GTK_WINDOW (window), "系统监视器");  gtk_widget_set_size_request (GTK_WIDGET (window), 300, 200);    main_vbox = gtk_vbox_new (FALSE, 1);  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 1);  gtk_container_add (GTK_CONTAINER (window), main_vbox);  gtk_widget_show (main_vbox);    get_main_menu (window, &menubar);  gtk_box_pack_start (GTK_BOX (main_vbox), menubar, FALSE, TRUE, 0);  gtk_widget_show (menubar);     /* 创建一个新的笔记本,将标签页放在顶部 */  notebook = gtk_notebook_new ();  gtk_box_pack_start (GTK_BOX (main_vbox),notebook, TRUE, TRUE, 0);  gtk_widget_show (notebook);       /* 在笔记本后面追加几个页面 */  for (mark = 0;mark < 4; mark++)    {	          	   vpaned = gtk_vpaned_new ();  gtk_widget_show (vpaned);   list=create_list( nodehome[mark],mark);  gtk_paned_add1 (GTK_PANED (vpaned), list);  gtk_widget_show (list);	  label = gtk_label_new (bufferl[mark]);	  gtk_notebook_append_page (GTK_NOTEBOOK (notebook),vpaned, label);    }   button = gtk_button_new_with_label ("关闭");   g_signal_connect (G_OBJECT (button), "clicked",		      G_CALLBACK (delete), "button 1");  gtk_box_pack_end (GTK_BOX(main_vbox), button, FALSE, FALSE, 0);  gtk_widget_show (button);  gtk_widget_show (window);  gtk_main ();   return 0;}

⌨️ 快捷键说明

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