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

📄 ipage2.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>linux编程环境</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="ipage2.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=717>
<TBODY>
<TR>
<TD colSpan=2 height=35 vAlign=bottom width=717><font size="4" color="#3D5063">
实验</font><FONT color=#3d5063 size=4 style="CURSOR: hand">一熟悉linux的编程环境&nbsp;</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;</FONT></TD></TR>
<TR>
<TD colSpan=2 height=333 width=717>
<p class="MsoNormal" style="margin-left:18.0pt"> </p>
<p class="MsoNormal" style="margin-left:18.0pt">
<span style="font-family: 宋体; letter-spacing: -1pt">
<font color="#3D5063">题目:掌握<span lang="EN-US">Linux</span>操作系统的使用方法,包括键盘命令、系统调用,掌握在<span lang="EN-US">Linux</span>下的编程环境</font></span></p>
<p class="MsoNormal" style="text-indent: 15.75pt; text-autospace: none">
<font color="#3D5063"><span lang="EN-US" style="font-family:宋体"><font size="2">
(1)</font></span><span style="font-family:宋体"><font size="2">编一个<span lang="EN-US">C</span>程序,其内容为实现文件拷贝的功能;</font></span></font></p>
<p class="MsoNormal" style="text-autospace: none"><font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.0pt; font-family: 宋体">设计分析:本小题的要求主要是掌握在<span lang="EN-US">linux</span>下的编程环境:熟悉函数库<span lang="EN-US">glibc</span>,编译器<span lang="EN-US">gcc</span>和<span lang="EN-US">linux</span>常用的命令。</span></font></p>
<p class="MsoNormal" style="text-autospace: none"><font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;
</span><span style="font-size: 10.0pt; font-family: 宋体">本题目程序<span lang="EN-US">copy.c</span>的源代码如下:</span></font></p>
<p class="MsoNormal" style="text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">#include&lt;stdio.h&gt;</span></font></p>
<p class="MsoNormal" style="text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">#include&lt;stdlib.h&gt;</span></font></p>
<p class="MsoNormal" style="text-autospace: none"><font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;</span></font></p>
<p class="MsoNormal" style="text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">void main(int 
argc,char * argv[]){</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">FILE * filein,* 
fileout;</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">if(argc !=3){</span></font></p>
<p class="MsoNormal" style="text-indent: 80.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">printf(&quot;Arguments 
error\n&quot;);</span></font></p>
<p class="MsoNormal" style="text-indent: 80.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">exit(-1);</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">}</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">if((filein=fopen(argv[1],&quot;r&quot;))==NULL){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/*</span><span style="font-size: 10.0pt; font-family: 宋体">打开源文件<span lang="EN-US">*/</span></span></font></p>
<p class="MsoNormal" style="text-indent: 80.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">printf(&quot;Can't open 
%s\n&quot;,argv[1]);</span></font></p>
<p class="MsoNormal" style="text-indent: 80.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">exit(-1);</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">}</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">if((fileout=fopen(argv[2],&quot;w&quot;))==NULL){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/*</span><span style="font-size: 10.0pt; font-family: 宋体">打开目的文件<span lang="EN-US">*/</span></span></font></p>
<p class="MsoNormal" style="text-indent: 80.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">printf(&quot;Can't open 
%s\n&quot;,argv[2]);</span></font></p>
<p class="MsoNormal" style="text-indent: 80.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">exit(-1);</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">}</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">while(!feof(filein))</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
putc(getc(filein),fileout);&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; /*</span><span style="font-size: 10.0pt; font-family: 宋体">拷贝文件<span lang="EN-US">*/</span></span></font></p>
<p class="MsoNormal" align="center" style="text-align: center; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">fclose(filein);</span></font></p>
<p class="MsoNormal" style="text-indent: 50.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">fclose(fileout);</span></font></p>
<p class="MsoNormal" style="text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">}</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; </span>
</font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063"><span style="font-size: 10.0pt; font-family: 宋体">调试分析:在<span lang="EN-US">linux</span>下,由<span lang="EN-US">c</span>语言编写的程序可由<span lang="EN-US">gcc</span>编译、连接成可执行文件。</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
<span style="font-size: 10.0pt; font-family: 宋体">本程序的调试命令为:<span lang="EN-US">gcc 
–o copy copy.c</span>;</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
<span style="font-size: 10.0pt; font-family: 宋体">本程序的执行命令为:<span lang="EN-US">./copy</span></span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-indent: 30.0pt; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;</span><span style="font-size: 10.0pt; font-family: 宋体">在<span lang="EN-US">linux-2.4.20-8</span>下程序编译通过并能实现要求的功能。</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none"> </p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none"> </p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none"> </p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none"> </p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none"> </p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">(2)</span><span style="font-family:宋体"><font size="2">编一个<span lang="EN-US">C</span>程序,其内容为分窗口同时显示三个并发进程的运行结果。要求用到<span lang="EN-US">Linux</span>下的图形库。 
</font></span></font></p>
<p class="MsoNormal"><font color="#3D5063"><span style="font-family:宋体">
<font size="2"><span lang="en-us">&nbsp;&nbsp;&nbsp; </span>设计分析:本题目的要求是应用<span lang="EN-US">linux</span>的图形编程工具<span lang="EN-US">gtk</span>进行<span lang="EN-US">linux</span>环境下的图形界面编程。</font></span><span lang="EN-US" style="font-family:宋体"><font size="2">gtk</font></span><span style="font-family:宋体"><font size="2">是具有<span lang="EN-US">OO</span>特色的<span lang="EN-US">C</span>语言框架,编写<span lang="EN-US">gtk</span>程序需遵循一定的步骤:初始化<span lang="EN-US">gtk</span>(通过<span lang="EN-US">gtk_init()</span>函数实现);建立控件;登记消息与消息处理函数;执行消息循环函数</font><span lang="EN-US"><font size="2">gtk_main().</font></span></span></font></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span style="font-family:宋体">
<font size="2" color="#3D5063">题目要求结合并发进程进行编程,除了单独编写三个<span lang="EN-US">gtk</span>界面程序外,还需要将它们并发执行。为此程序由四个子程序组成。</font></span></p>
<p class="MsoNormal" style="text-indent: 10.5pt">
<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 style="font-family:宋体">
<font size="2" color="#3D5063">程序<span lang="EN-US">main.c</span>是实现三个<span lang="EN-US">gtk</span>程序并发的主程序,其内容如下:</font></span></p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">#include &lt;stdio.h&gt;</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">#include &lt;unistd.h&gt;</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">#include &lt;sys/types.h&gt;</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">

⌨️ 快捷键说明

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