操作系用实验3参考答案.doc_第1页
操作系用实验3参考答案.doc_第2页
操作系用实验3参考答案.doc_第3页
操作系用实验3参考答案.doc_第4页
操作系用实验3参考答案.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三 文件系统的用户界面参考答案(一)实验目的进一步理解、使用和掌握文件的系统调用、文件的标准子例程,能利用和选择这些基本的文件操作完成复杂的文件处理工作。(二)源代码1编写一个文件复制的C语言程序:分别使用文件的系统调用read(fd, buf, nbytes), write(fd, buf, nbytes)和文件的库函数fread(buf, size, nitems, fp), fwrite(buf, size, nitems, fp),编写一个文件的复制程序。#include #include #include /*copy file , if way =1, use read/write, else use fread/fwrite, at the same time, it counts time consumed*/int mycopy(int way, int step) time_t start_tm, stop_tm;FILE *srcf,*destf;char buff1024;int i, sfd,dfd;time(&start_tm); /get start timefor (i=0;i1024;i=i+step) if(way=1) sfd= open(in.txt,O_RDONLY,0644);dfd=open(out.txt,O_WRONLY|O_CREAT|O_TRUNC,0644);read(sfd, buff, step);write(dfd, buff, step);close(sfd);close(dfd);else srcf = fopen(in.txt,r);destf = fopen(out.txt,w);fread(buff, step*sizeof (char), 1, srcf);fwrite(buff, step*sizeof(char), 1, destf);close(srcf);close(destf);time(&stop_tm); /get stop timeprintf(ntime used for copy file by means of %s, %d byte per time: %ds, way?read,write:fread,fwrite,step, (int)(stop_tm-start_tm); /print information for testingreturn 0;int main (int argc, char *argv)/*当上述函数中nbytes, size和nitems都取值为1时(即一次读写一个字节),比较这两种程序的执行效率。*/if (mycopy (1,1) return 1;if (mycopy (0,1)return 1;/*当nbytes取1024字节,size取1024字节,且nitems取1时(即一次读写1024字节),再次比较这两种程序的执行效率。*/if (mycopy (1,1024)return 1;if (mycopy (0,1024)return 1;return 0;2编写一个父子进程之间用无名管道进行数据传送的C程序。父进程逐一读出一个文件的内容,并通过管道发送给子进程。子进程从管道中读出信息,再将其写入一个新的文件。程序结束后,对原文件和新文件的内容进行比较。#include #include #include int main(int argc, char argc)int sfd,dfd,n,chan2;char buff1024; sfd= open(in.txt,O_RDONLY,0644);dfd=open(out.txt,O_WRONLY|O_CREAT|O_TRUNC,0644);pipe(chan);/open a pipeif(fork() /start a child process to send filewhile(n=read(sfd,buff,1024)0) close(chan0);write(chan1,buff,n);close(chan1);else /in father process, receive fileclose(chan1);read(chan0,buf,1024);write(dfd,buff,strlen(buff);close(chan0);close(sfd);close(dfd);return 0;3在两个用户的独立程序之间,使用有名管道,重新编写一个C程序,实现题3的功能。#include #include #include #include int main(int argc, char *argv)int sfd,dfd,sp,dp,iofile;char buff1024; sfd = open(in.txt,O_RDONLY,0644);dfd=open(out.txt,O_WRONLY|O_CREAT|O_TRUNC,0644);mknod(iofile,S_IFIFO|0666,0);/name a pipeif(fork() sp=open(iofile,O_WRONLY);while(n=read(sfd,buff,1024)0)write(pp,buff,n);close(sp); close(sfd);else dp=open(iofile,O_RDONLY|O_NDELAY);while(n= read(dp,buff,1024)!=1)if(n=0) sleep(5);else write(df,buff,strlen(buff);close(dp);close(dfd); return 0;Unix实用程序参考答案(一) 实验目的熟悉和掌握Unix的shell命令,正则表达式和过滤器程序的使用。(二)实验题目1 上机练习ls,ln,ln s,file,chown,chmode,head,taill,find等命令。 (1) 假定当前目录中没有ls.save文件,先后键入ls l和ls l ls.save两个命令。请将第一个ls命令的输出和第二个命令的输出文件ls.save中的内容作仔细比较。两者有何不同?并加以解释。 (2).比较ls,ls *,ls .,ls .* ,ls .?* 这些命令的输出有何不同? (3) 以下两条命令: mv file1 file2 cp file1 file2;rm file1 的执行效果是否总是相同的?请仔细推敲并上机验证(提示:如是软连接如何)。(4)在当前的目录树中显示当天修改的c源程序名。 2掌握正则表达式的匹配规则,上机练习grep、awk命令。 (1) 按相反的次序显示输入行及行号。 (2) 统计输入单词的频度。 3上机练习df,du,tar命令。 4上机练习ps,time,nohub命令。 5上机练习compress,gzip和man等命令。(三)实验结果 1 上机练习ls,ln,ln s,file,chown,chmode,head,taill,find等命令。 (1) 假定当前目录中没有ls.save文件,先后键入ls l和ls l ls.save两个命令。请将第一个ls命令的输出和第二个命令的输出文件ls.save中的内容作仔细比较。两者有何不同?并加以解释。 ln:创建软连接;chown: 更改某个文件或目录的所有者chmode: 设置文件或目录的默认权限的命令head: 用head命令只显示文件或标准输入的头几行taill: 用户想查看文件的尾部find:查找文件 ls l的结果 ls lls.save的结果可以看出ls lls.save的结果多了一个空文件ls.sav,因为该命令先根据输出转向生成文件ls.save,再运行ls命令时列出了该文件,并存入ls.save文件中。 (2) 比较ls,ls *,ls .,ls .* ,ls .?* 这些命令的输出有何不同? (3)以下两条命令:mv file1 file2cp file1 file2;rm file1的执行效果是否总是相同的?请仔细推敲并上机验证(提示:如是软连接如何)答:一样,mv file1 file2的功能是把file1文件名更改成file2 cp file1 file2;rm file1的功能是先复制文件然后删除源文件。但file1里面的内容没有更改。软连接的功能也一样。 (4)在当前的目录树中显示当天修改的C源程序名。 2掌握正则表达式的匹配规则,上机练习grep、awk命令。 (1) 按相反的次序显示输入行及行号。(2) 统计输入单词的频度。 3上机练习df,du,tar命令。 df:件系统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论