- 6
- 0
- 约3.44万字
- 约 28页
- 2016-12-27 发布于北京
- 举报
了解/proc文件的特点和使用方法,监控系统状态,显示系统中若干部件的使用情 况,用图形界面显示系统监控状态。
?????? 主要参考书目:gtk2.0教程,百度,google
这个任务管理器是参考着windows下的任务管理器和老师的要求做的。对于整体布局是用GTK编写的,中间用到了常用的构件和容器比如:菜单栏,对话框,状态栏,盒子,滚动条,标签,notebook等,并且为在显示内存信息和进程信息看起来比较好看我还用到了GtkListStore、 GtkTreeViewColumn 和gtkTreelter等构件。因为过程有些复杂我在关键部位进行了注释。大致布局是先创建窗口,之后创建表格,上面是一个菜单栏,包括三个菜单,并且每个菜单下设有子菜单(关闭窗口,关机、重启、注销,关于本任务管理器的介绍);下面和右侧是两个状态栏分别显示系统启动时间、系统运行时间、总进程数、CPU利用率,MEM利用率,swap利用率(实时显示则用gtk_timeout_add调用回调函数来达到每隔一段时间更新显示);中间是一个notebook,期间设有五个页面分别显示cpu信息,mem信息,硬盘信息,进程信息,系统信息,mem信息中用到了 树型列表构件,可以手动刷新,在进程信息页中可以手动刷新和手动杀死一个进程。
读取/proc文件信息:
从/proc/stat读取cpu各状态的时间,从而通过cpu_rate= 100*(user+nice+system)/(float)(user+nice+system+idle)得到cpu的利用率
从/proc/meminfo读取内存总量和可用内存,利用1-MemFree/MemTotal得到Mem的利用率
从/proc这个目录下读取数字文件夹的数量,既是进程总数
从/proc/meminfo读取内存信息
从/proc/进程号/status读取进程名,PID及状态,/proc/进程号/statm读取进程占用内存大小
从/proc/partitions读取硬盘信息
从/proc/sys/kernel/hostanme读取主机名
从/proc/cpuinfo读取cpu信息
从/proc/version中读取操作系统类型、内核版本、gcc版本
为了格式化显示这些读取的信息,使用了strtok字符串分割函数,sprintf函数可以从某种规则中读取出自己需要的字符串,sscanf函数则是连接两个字符串最好的操作参数。
源代码:
编译:gcc -o os os.c `pkg-config --cflags --libs gtk+-2.0`
运行:./os #define GTK_ENABLE_BROKEN
#includegtk/gtk.h
#includestdio.h
#includedirent.h
#includeunistd.h
#includesys/file.h
#includefcntl.h
#includestring.h
#includetime.h
#includemath.h
#includestdlib.h
#includesys/time.h
#includegdk/gdk.h
#define DENSITY 100 //图形点密度
#define PMAX 100 //最大进程数目
enum
{
NAME_COLUMN, //进程名列
PID_COLUMN, //进程PID列
STATUS_COLUMN,//进程状态列
CPU_COLUMN, //CPU信息列
MEMORY_COLUMN,//内存信息列
NP_COLUMNS
};
enum
{
MAJOR_COLUMN,//分区主号
MINOR_COLUMN,//分区次要号
BLOCK_COLUMN,//块大小
NAME2_COLUMN,//分区名称
NB_COLUMNS
};
enum
{
NAME3_COLUMN,//分类
SIZE_COLUMN,//所占内存大小
KB_COLUMN,
NM_COLUMNS
};
struct Process{
char name[25];
char pro_id[10];
char cpu_take[10];
char mem_take[10];
}pro[200];
float cpu_rate,mem_rate,swap_rate;
char *title[6]={ 资源信息 , 内存信息 , 进程信息 , 磁盘信息 , 系统信息 ,说明};
gdouble fuser = 0; //先前C
您可能关注的文档
- 《EXCEL函数表excel所有函数.doc
- 《Excel函数应用.doc
- 《excel四种图形表达.docx
- 《EXCEL分类汇总操作手册.docx
- 《Excel制表技巧46复杂表格.doc
- 《Excel图表向导详解.doc
- 《EXCEL和Word 技巧常识.doc
- 《Excel办公软件学习交流教材.doc
- 《Excel图表可以将数据图形化.doc
- 《excel多重求和.doc
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 英语分级阅读:国家地理《Reading Explorer》A1-A2入门级 REF_unit 1A.pdf VIP
- 社区社会工作教学课件 周沛 易艳阳-第1章 社区概述.pptx VIP
- 急性胰腺炎急诊诊治专家共识(2024).pptx VIP
- 2025年AWS认证SavingsPlans在游戏行业中的应用案例专题试卷及解析.pdf VIP
- FDS火灾模拟软件使用教程.pptx VIP
- 2022版《小学数学新课程标准》的解读与梳理PPT课件.pptx VIP
- 制作一:布绒玩具制作.ppt VIP
- 胃潴留的护理.ppt
- 2026广东省佛山市南海公证处公开招聘公证员助理2人笔试参考题库及答案解析.docx VIP
- 解剖关节学课件.ppt VIP
原创力文档

文档评论(0)