linux 系统信息显示实验.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux 系统信息显示实验

if(match == NULL) return 0; sscanf(match,Name : %s,current.process_name); … … /* 读取进程使用内存的信息 */ strcpy(dirpath,/proc/); strcat(dirpath,ptr-d_name); strcpy(filepath,dirpath); strcat(filepath,/statm); fp = fopen(filepath,r); bytes_read = fread(buffer,1,sizeof(buffer),fp); fclose(fp); if(bytes_read == 0 || bytes_read == sizeof(buffer)) return 0; buffer[bytes_read] = \0; sscanf(buffer,%u,(current.process_mem)); 进程信息是使用GTK的TREE_VIEW来控制其显示内容与格式。 /*转化进程的状态为中文*/ if(current.process_status == S) { /*为树模型添加信息*/ gtk_list_store_append(store,iter); /*添加进程号、进程名、进程状态、进程占用的内存信息*/ gtk_list_store_set(store,iter,COL_ID,current.process_id, COL_NAME,current.process_name,COL_STATUS,睡眠, COL_MEM,current.process_mem, -1); } else if(current.process_status == Z) { gtk_list_store_append(store,iter); gtk_list_store_set(store,iter,COL_ID,current.process_id, COL_NAME,current.process_name, COL_STATUS,僵死, COL_MEM,current.process_mem, -1); } 通过程序获取的当前进程信息如图11-7所示 图11-7 进程信息显示 11.4.2 内存信息监测实验 图11-8 内存监测框架图 二、流程设计 1. 系统内存信息监测算法流程图 图11-9 系统内存信息监测流程图 2. 进程内存信息监测算法流程图 图11-10 进程内存信息的监测流程图 3. 图形化界面监测内存信息算法流程图 图11-11 图形界面内存监测流程图 三.程序实现 1. 系统内存信息监测的实现 读取相关信息 meminfo=fopen(/proc/meminfo, r); /* 打开 /proc/meminfo */ for(;;) { /* 循环进行,直到读到文件结束 */ fgets(buf,MAIN_BUFFER_LENGTH,meminfo); /*得到meminf信息,并将结果保留在buf中*/ if(feof(meminfo)!=0) break; /* 文件结束,退出循环*/ len=sscanf(buf, %s %ld, name, val); /* 将buf字符串传递给name,字符串的数据量大小传递给val, 已经成功读取的数据个数存放在len */ if(len==2) { /* 如果两个数据都成功读取,将进行下面的操作 */ if(strcmp(name, MemTotal:)==0) {MemTotal=val; continue;} /*变量name与MemTotal进行比较,如果相等,就把数据量大小传递给val*/ if(strcmp(name, MemFree:)==0) {MemFree=val; continue;} if(strcmp(name, Buffers:)==0) {Buffers=val; continue;} if(strcmp(name, Cached:)==0) {Ca

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档