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

📄 ipage3.htm

📁 操作系统课程设计
💻 HTM
📖 第 1 页 / 共 2 页
字号:
宋体"><font size="2">打开源文件</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printk(&quot;can</font></span><span style="font-family:宋体"><font size="2">’</font><span lang="EN-US"><font size="2">t 
open infile!\n&quot;);</font></span></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (1);</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"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">&nbsp;&nbsp;&nbsp; if((outfile=sys_open(out,O_RDWR 
| O_CREAT,S_IRWXU))==NULL){ /*</font></span><span style="font-family:宋体"><font size="2">打开目的文件</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printk(&quot;can</font></span><span style="font-family:宋体"><font size="2">’</font><span lang="EN-US"><font size="2">t 
open outfile!\n&quot;);</font></span></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (-1);</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"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">&nbsp;&nbsp;&nbsp; while((n=sys_read(infile,buf,count))&gt;0){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/*</font></span><span style="font-family:
宋体"><font size="2">从源文件读内容</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if((sys_write(outfile,buf,n))!=n){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</font></span><span style="font-family:
宋体"><font size="2">把内容写到目的文件</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printk(&quot;copy err!\n&quot;);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (3);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</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; kfree(buf);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; sys_close(infile);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; sys_close(outfile);</font></span></p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">&nbsp;&nbsp;&nbsp; set_fs(fs);&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></span><span style="font-family:宋体"><font size="2">返回初态</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; printk(&quot;sys_myCopy done!\n&quot;);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; return(0);</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">&nbsp;</font></span></p>
<p class="MsoNormal"><span style="font-family:宋体">
<font size="2" color="#3D5063">调试记录:为了测试新增的系统调用能否正常工作,使用以下的<span lang="EN-US">testsys.c</span>程序进行测试:</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include&lt;linux/unistd.h&gt; </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;stdlib.h&gt; </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include&lt;errno.h&gt; </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"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">
_syscall2(int,filecopy,char*,argv1,char*,argv2)&nbsp;&nbsp; </font></span>
<span style="font-family:宋体"><font size="2">   <span lang="EN-US">/*</span>声明新增的系统调用</font><span lang="EN-US"><font size="2">*/
</font></span></span></font></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">int main(int argc,char* argv[]){ </font></span>
</p>
<p class="MsoNormal" style="text-indent: 21.0pt">
<span lang="EN-US" style="font-family:宋体"><font size="2" color="#3D5063">int i;
</font></span></p>
<p class="MsoNormal" style="text-indent: 21.0pt"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">i=filecopy(&quot;/root/test.c&quot;,&quot;/root/test1.c&quot;);
</font></span><span style="font-family:宋体"><font size="2">   <span lang="EN-US"> 
/*</span>调用新增的系统调用</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal" style="text-indent: 21.0pt">
<span lang="EN-US" style="font-family:宋体"><font size="2" color="#3D5063">if(i==0) 
&nbsp;&nbsp;&nbsp;printf(&quot;\nfile copy accomplished!!\n&quot;); </font></span></p>
<p class="MsoNormal" style="text-indent: 21.0pt">
<span lang="EN-US" style="font-family:宋体"><font size="2" color="#3D5063">else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;i=%d,error!\n&quot;,i); </font></span></p>
<p class="MsoNormal" style="text-indent: 21.0pt">
<span lang="EN-US" style="font-family:宋体"><font size="2" color="#3D5063">
exit(0); </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 style="font-family:宋体">
<font size="2" color="#3D5063">进入新编的内核后,使用命令<span lang="EN-US">gcc –o testsys 
testsys.c</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 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">&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">&nbsp;</font></span></p>
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 
</font></TD></TR>
<TR>
<TD height=12 vAlign=bottom width=855>
<P align=right><FONT color=#3D5063 size=2><SPAN>&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;<a href="ipage4.htm"><font color="#3D5063">实验三 
</font></a> </SPAN><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</b></FONT><B><FONT color=#3D5063 size="2"> &nbsp;</FONT></B><A href="../index.htm"><FONT color=#3D5063 style="FONT-FAMILY: 宋体; FONT-STYLE: normal; FONT-WEIGHT: normal" size="2">返回目录页</FONT></A></P></TD>
<TD height=12 vAlign=bottom width=0></TD></TR>
</TBODY></TABLE></CENTER></DIV></BODY></HTML>

⌨️ 快捷键说明

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