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

📄 ipage5.htm

📁 操作系统课程设计
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<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文件系统&nbsp;</font><font size="2" color="#3D5063"> 
</font><FONT color=#3d5063 size=2 style="CURSOR: hand">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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">&nbsp;</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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">&nbsp;</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&lt;stdio.h&gt;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include&lt;gtk/gtk.h&gt;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include&lt;stdlib.h&gt;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include&lt;string.h&gt;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include&lt;time.h&gt;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; char *p1,*p2;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 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">&nbsp;&nbsp;&nbsp; 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">(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</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">&nbsp;&nbsp;&nbsp; char *p,*pa;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; p= (char *)malloc(100);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; if(p==NULL) printf(&quot;failed!\n&quot;);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; pa=p;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; time_t now;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; struct tm *l_time;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; gchar buf[100];</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; now=time(&amp;now);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; l_time=localtime(&amp;now);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; p=asctime(l_time);&nbsp; </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 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">&nbsp;}</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;</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">(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</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">&nbsp;&nbsp;&nbsp; gchar buf[100];</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; int&nbsp; i=0;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; char c;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; char *p,*pa;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; p= (char *)malloc(100);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; if(p==NULL) printf(&quot;failed!\n&quot;);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; pa=p;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 
if((filein2=fopen(&quot;/proc/meminfo&quot;,&quot;r&quot;))==NULL){</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Can't open sourcem \n&quot;);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; }</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; while(!feof(filein2)){</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=getc(filein2);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (c=='\n') i++;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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">&nbsp;&nbsp;&nbsp; }</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; fclose(filein2);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; sprintf(buf,&quot;%s&quot;,pa);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 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">&nbsp;</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">(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</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">&nbsp;&nbsp;&nbsp; char buf[50];</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp; c;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; char *p,*pa;</font></span></p>

⌨️ 快捷键说明

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