华科操作系统课设报告

华科操作系统课设报告

ID:34386692

大小:479.00 KB

页数:13页

时间:2019-03-05

华科操作系统课设报告_第1页
华科操作系统课设报告_第2页
华科操作系统课设报告_第3页
华科操作系统课设报告_第4页
华科操作系统课设报告_第5页
资源描述:

《华科操作系统课设报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、专业资料参考华中科技大学操作系统课程设计实验报告专业:计算机科学与技术班级:1101姓名:许阳学号:U201014241word格式整理专业资料参考一、实验目的掌握Linux操作系统的使用方法;了解Linux系统内核代码结构;掌握实例操作系统的实现方法。二、实验要求1、掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux下的编程环境。l编一个C程序,其内容为实现文件拷贝的功能;l编一个C程序,其内容为分窗口同时显示三个并发进程的运行结果。要求用到Linux下的图形库。2、掌握系统调用的实现过程,通过编译内核方法,增加一个新的系统调用。另编写一个应用程序,调用新增加的系统调

2、用。实现的功能是:文件拷贝;3、掌握增加设备驱动程序的方法。通过模块方法,增加一个新的设备驱动程序,其功能可以简单。实现字符设备的驱动;4、了解和掌握/proc文件系统的特点和使用方法l了解/proc文件的特点和使用方法l监控系统状态,显示系统中若干部件使用情况l用图形界面实现系统监控状态。5、设计并实现一个模拟的文件系统(选作)三、实验一1、编一个C程序,其内容为实现文件拷贝的功能要实现文件拷贝功能,主要用到的函数是open、write、read。以前在windows下写C语言打开文件常用的fopen,此时不能用,因为fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内

3、核api;所以应该直接使用linux中的系统函数open。主要用到的头文件:Unistd.h\包含了许多Linux系统服务的函数原型,如:read、writeFcntl.h\定义了很多宏和open,fcntl函数原型Stdio.h\标准输入输出头文件sys/types.h\此头文件包含适当时应使用的多个基本派生类型sys/stat.h\包含了获取文件属性的一些函数errno.h\用于调试错误代码是所需要的一些errnoword格式整理专业资料参考变量string.h\包含了处理字符串的一些函数设计思路:由命令行参数获取2个文件名,根据其文件名和路径分别打开该2个文件,设置一个循环

4、,从源文件复制N个字节到目的文件,直到源文件指针到文件尾,最后关闭2个文件。在可能出错的地方需要加上相应的报错代码和中断,并输出错误信息,以方便调试或是往后应用在第2小题中可能发生的错误。理清楚设计思路后,根据需求写出相应的源代码见后页源程序代码scopy.c;在Linux终端使用编译命令gcc–oscopyscopy.c将程序编译并生产exe可执行文件。然后手动创建一个测试文件test.txt,在终端输入命令./scopytest.txttarget.txt这样就能将源文件test.txt复制到目标文件target.txt程序源代码scopy.c:#include#inc

5、lude#include#include#include#include#include#defineBUFFER_SIZE1024//缓冲区大小intmain(intargc,char**argv){intfrom_fd,to_fd;intbytes_read,bytes_write;charbuffer[BUFFER_SIZE];//设定一个缓冲区char*ptr;if(argc!=3)//三个参数{fprintf(stderr,"Usage:%sfromfileto

6、filea",argv[0]);return(-1);}/*打开源文件*/if((from_fd=open(argv[1],O_RDONLY))==-1){fprintf(stderr,"Open%sError:%s",argv[1],strerror(errno));return(-1);}/*创建目的文件*/word格式整理专业资料参考if((to_fd=open(argv[2],O_WRONLY

7、O_CREAT,S_IRUSR

8、S_IWUSR))==-1){fprintf(stderr,"Open%sError:%s",argv[2],strerror(errno));re

9、turn(-1);}while(bytes_read=read(from_fd,buffer,BUFFER_SIZE)){/*出错*/if((bytes_read==-1)&&(errno!=EINTR))break;elseif(bytes_read>0){ptr=buffer;while(bytes_write=write(to_fd,ptr,bytes_read)){/*出错*/if((by

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。