要求:
理解和分析/proc文件
内容
了解/proc文件的特点和使用方法。
监控系统状态,显示系统中若干部件的使用情况。
用图形界面显示系统监控状态。
相关原理:
用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
我们要显示系统信息,只需进行相应的文件操作。首先打开相应的文件,读取所需要的信息,将其写入一个缓冲区中,然后将缓冲区的内容加到Gtk的相应的控件上面去,最后将控件组合显示即可。
/proc/文件结构参考:http://blog.csdn.net/ubuntulover/article/details/4449787
比如我们如果要读取cpu信息,可以在控制台下输入命令:cat /proc/cpuinf
要得到内存信息,可以输入命令:cat /proc/meminfo
这只是冰山一角,仅此我们已经看到/proc目录下文件内容之丰富。
要想编程读取这些信息,首先我们要了解/proc结构,了解其各种信息的排布,然后就像读普通文件一样将其筛选出来。
比如,查看系统的cpu频率,属于cpu信息:more /proc/cpuinfo (注,命令more 和cat功能相似,都是显示一个文件的内容)
其排布为如下:
我们也就知道,cpuinf文件中,一种信息放一行,因此我们一行一行的遴选信息。
首先需将cpuinf文件读出来,
然后进行字符串匹配,找到含有“cpu MHz”这个字符串的一行,读出来即可。
其它如模块信息、内存信息,类似处理,字要你了解了其结构,就可以方便的读出来
所以关键有3点:1、你知道信息在哪里;2、你看到了信息的排列方式;3、设计算法剔除无用信息。
而对于进程信息,稍复杂。
我们先看看进程信息放在哪里的:首先进入 /proc 目录并查看该目录下的文件:
蓝色的是目录(所谓的文件夹),绿色的是文件,文件中有cpuinf、meminfo等,我们之前已经看过。现在看看那些蓝色的以数字为名的文件夹,他们正是保存进程信息的!
目录1存储的是PID为1的进程的信息,目录2存储的是PID为2的进程的信息……
我们试着进入这些目录看看!
里面有一些目录和文件,其中有个status文件,打开看看:
看到了吧,很清晰地罗列出了进程1的信息,名字是init,状态Sleeping ,PID是1……
由此得知,要读取所有进程的信息列表,我们需要循环打开/proc文件夹下所有以数字命名的目录。
大致过程为:
好了,现在弄清楚了原理,就可以动手实现了。但是需要一个界面呀,这里我们继续用GTK来画界面。
关于GTK这里就不多说了。
最后实现界面截图:
杀死进程:
刷新列表:
最后,附上源程序。共11个文件,将其放入一个文件夹下,编译命令:gcc -o sb *.c `pkg-config --cflags --libs gtk+-2.0`(当然首先得配置好了GTK,
参考上一篇博客
ubuntu GTK+eclipse 配置 http://blog.csdn.net/creazyapple/article/details/7290443)
分享到:
相关推荐
linux下读取/proc获得系统信息 监控系统状态,显示系统中若干部件的使用情况。 用GTK库实现图形界面显示系统监控状态
通过读取/proc文件,获得系统信息 监控系统状态,显示系统中若干部件的使用情况。 用GTK库的图形界面显示系统监控状态。
读取/proc/cmdline 文件中的标志位信息。。
基于Ubuntu下/proc虚拟文件系统实现的类似Windows的资源管理器,文章介绍:https://blog.csdn.net/z18223345669/article/details/122377005;内含项目文件和设计报告
linux平台下,读取/proc/cpuinfo获取CPU信息demo
本文介绍了通过Linux系统的内核观察/proc/pid/statm,文中解释了输出内容的参数,通过内核代码,我们可以更加清楚的了解proc的机制。
/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux® 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件...
proc文件系统讲解,非常详细。 1 收集系统信息 1.0 proc文件系统概览 1.1 进程相关信息子目录 1.2 内核数据 1.3 IDE接口信息 /proc/ide 1.4 网络统计信息 /proc/net 1.5 SCSI接口信息 /proc/scsi 1.6 并行端口信息 /...
一个应用程序,可以通过读取/proc/net/xt_qtaguid/stats来分析应用程序的流量
使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核...
// CPU占用率计算原理:// 1、读取/proc/pid/stat文件,其中记录了从开机到现在,本进程所占用的CPU时间(单位jiffies)// 2、然后再读取/proc/stat文件,其中记录了从开机到现在,系统所占用的CPU时间(单位jiffies...
基于Linux下的程序,在图形包GTK的帮助下,在/proc读取CPU,内存等信息,并以类似于win下任务管理器的形式显示出来。
有用的Linux命令方便学习 部分展示 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件...cat /proc/mounts 显示已加载的文件系统
/proc文件系统简单应用-内核空间和用户空间之间的数据交互 http://edsionte.com/techblog/archives/3030 /proc文件系统简单应用-内核空间和用户空间之间的数据交互 http://edsionte.com/techblog/archives/3030/proc...
在linux下利用c语言实现的进程树的打印,主要通过/proc下的目录中的进程文件,获取status中的进程信息内容,然后利用递归实现进程树的打印
linux proc 文件系统 编程手册,对初学者 很有用
《linux/unix系统编程手册(上、下册)》总共分为64章,主要讲解了高效读写文件,对信号、时钟和定时器的运用,创建进程、执行程序,编写安全的应用程序,运用posix线程技术编写多线程程序,创建和使用共享库,运用...
linux proc文件系统简介 linux proc文件系统简介
Linux下Proc文件系统的编程剖析.pdf
linux proc文件系统详解 资源收集