📄 ipage5.htm
字号:
<HTML xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40"><HEAD><TITLE>实验四proc文件系统 </TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="Microsoft FrontPage 6.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
<link rel="File-List" href="ipage5.files/filelist.xml">
<!--[if !mso]>
<style>
v\:* { behavior: url(#default#VML) }
o\:* { behavior: url(#default#VML) }
.shape { behavior: url(#default#VML) }
</style>
<![endif]--><!--[if gte mso 9]>
<xml><o:shapedefaults v:ext="edit" spidmax="1027"/>
</xml><![endif]-->
</HEAD>
<BODY background=images/back.gif>
<DIV align=center>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 height=382 width=700>
<TBODY>
<TR>
<TD colSpan=2 height=46 vAlign=bottom width=698><font size="5" color="#3D5063">
实验四 proc文件系统 </font><font size="2" color="#3D5063">
</font><FONT color=#3d5063 size=2 style="CURSOR: hand"> </FONT></TD></TR>
<TR>
<TD colSpan=2 height=305 width=698>
<p class="MsoNormal"><font color="#3D5063"><span style="font-family: 宋体">题目</span></font><span style="font-family:宋体"><font color="#3D5063">:了解和掌握<span lang="EN-US">/proc</span>文件系统的特点和使用方法</font></span></p>
<p class="MsoNormal" style="text-indent: -21.0pt; margin-left: 57.0pt">
<span lang="EN-US" style="font-family: Symbol"><font size="2" color="#3D5063">¨</font><span style="font-style: normal; font-variant: normal; font-weight: normal; font-family: Times New Roman"><font size="2">
</font></span></span><span style="font-family:宋体">
<font size="2" color="#3D5063">了解<span lang="EN-US">/proc</span>文件的特点和使用方法</font></span><span lang="EN-US" style="font-family:宋体"><font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal" style="text-indent: -21.0pt; margin-left: 57.0pt">
<span lang="EN-US" style="font-family: Symbol"><font size="2" color="#3D5063">¨</font><font color="#3D5063"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-family: Times New Roman"><font size="2">
</font></span></font></span><font color="#3D5063"><span style="font-family:宋体"><font size="2">
监控系统状态,显示系统中若干部件使用情况</font></span></font></p>
<p class="MsoNormal" style="text-indent: -21.0pt; margin-left: 57.0pt">
<span lang="EN-US" style="font-family: Symbol"><font size="2" color="#3D5063">¨</font><font color="#3D5063"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-family: Times New Roman"><font size="2">
</font></span></font></span><font color="#3D5063"><span style="font-family:宋体"><font size="2">用图形界面实现系统监控状态。</font></span></font></p>
<p class="MsoNormal" style="text-indent: -52.5pt; margin-left: 52.5pt">
<span style="font-family:宋体"><font size="2" color="#3D5063">设计分析:题目要求通过读取<span lang="EN-US">proc</span>文件系统,获得系统各种信息,并以<span lang="EN-US">gtk</span>图形的界面显示出来。为此,应先定义取各种</font></span></p>
<p class="MsoNormal" style="text-indent: -52.5pt; margin-left: 52.5pt">
<span style="font-family:宋体"><font size="2" color="#3D5063">信息的函数,然后用<span lang="EN-US">gtk</span>图形把函数的返回值显示出来。实验中设计了文件和文件目录的读取以及<span lang="EN-US">gtk</span>编程的消息通讯,有</font></span></p>
<p class="MsoNormal" style="text-indent: -52.5pt; margin-left: 52.5pt">
<span style="font-family:宋体"><font size="2" color="#3D5063">一定的难度。为次把设计功能分开<span lang="EN-US">—</span>用一个窗口显示进程信息,令一个窗口显示系统信息。</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">
<font size="2" color="#3D5063">下面是用于显示系统信息的程序</font></span><b><span lang="EN-US" style="font-family: 宋体"><font size="2">proc1.c</font></span></b><span style="font-family: 宋体"><font size="2">:</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include<stdio.h></font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include<gtk/gtk.h></font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include<stdlib.h></font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include<string.h></font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include<time.h></font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char *p1,*p2;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char * bufa,*bufb,*bufc,*bufe,*buff,*bufg;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> FILE * filein1,*filein2;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">static GtkWidget* clocker;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">void </font><b>
<font color="#3D5063">clock_begin</font></b><font size="2" color="#3D5063">(){ /*</font></span><span style="font-family:宋体"><font size="2" color="#3D5063">计时函数</font><span lang="EN-US"><font size="2" color="#3D5063">*/
</font></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char *p,*pa;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> p= (char *)malloc(100);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> if(p==NULL) printf("failed!\n");</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> pa=p;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> time_t now;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> struct tm *l_time;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gchar buf[100];</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> now=time(&now);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> l_time=localtime(&now);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> p=asctime(l_time); </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gtk_label_set_text(GTK_LABEL(clocker),p);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> }</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">static GtkWidget* memory;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">void </font>
<font color="#3D5063"><b>get_MemInfo</b></font><font size="2" color="#3D5063">(){ /*</font></span><span style="font-family:宋体"><font size="2" color="#3D5063">取内存信息函数</font><span lang="EN-US"><font size="2" color="#3D5063">*/</font></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gchar buf[100];</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> int i=0;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char c;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char *p,*pa;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> p= (char *)malloc(100);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> if(p==NULL) printf("failed!\n");</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> pa=p;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">
if((filein2=fopen("/proc/meminfo","r"))==NULL){</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> printf("Can't open sourcem \n");</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> }</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> while(!feof(filein2)){</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> c=getc(filein2);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> if (c=='\n') i++;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> if ((i==3|i==4)) {*p=c;p++;}</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> }</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> fclose(filein2);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> sprintf(buf,"%s",pa);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gtk_label_set_text(GTK_LABEL(memory),buf);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">} </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">static GtkWidget* uptime;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">void </font><b>
<font color="#3D5063">get_Uptime</font></b><font size="2" color="#3D5063">(){ /*</font></span><span style="font-family:宋体"><font size="2" color="#3D5063">取系统启动时间</font><span lang="EN-US"><font size="2" color="#3D5063">*/</font></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char buf[50];</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char c;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> char *p,*pa;</font></span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -