《操作系统实验报告十二.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《操作系统实验报告十二

《采用无缓冲方式实现文件读/写》实验报告 实验序号: 十二   实验项目名称:采用无缓冲方式实现文件读/写—共享内存 学  号 0907012112 姓  名 刘秀香 专业、班 计算机1班 实验地点 实验楼1-307 指导教师 李远敏 实验时间 2011-11-27 一、实验目的及要求 (1)熟悉掌握Windows系统文件读/写相关API。 (2)掌握无缓冲方式实现文件读/写相关参数的设置。 (3)采用无缓冲的方式完成文件的读/写 二、实验设备(环境) 一台装有WindowsXP或Windows2003的机器(这里默认是WindowsXP),C++环境 三、实验内容与步骤 实验内容: 建立一个函数,使用该函数将源文件souree.txt中的内容读出,再写到目标文件nobuffer.txt中去. 在Microsoft Visual C++6.0环境下选择Win32 Console Application 建立一个控制台工程文件,由于关于文件系统操作的函数均是Microsoft Windows操作系统的系统调用,因此选择An application that supports MFC. 由于要采用无缓冲的文件操作,在使用函数CreateFile()建立文件时,其参数dwFlagsAndAttributes应选用FILE FLAG NO BUFFERING.当文件以FILE FLAG NO BUFFERING方式创建后,对文件进行读/写时,读/写数据块的大小必须为一个扇区的2(n不为零)倍. 源程序如下: # include windows.h # include iostream.h void FileRW_Nobuffer(const char * source,const char * destination); void main() { coutNow read a txt file to another file!endl; FileRW_Nobuffer(sourcee.txt,nobuffer.txt); } void FileRW_Nobuffer(const char * source,const char * destination)//无缓冲读写 { HANDLE hsource; HANDLE hDest; DWORD dwRead; DWORD dwWrite; char buf[1024]; hsource=CreateFile(sourcee.txt,//创建sourcee.txt这个文件 GENERIC_READ,//读 0, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING,//文件属性 NULL); if(INVALID_HANDLE_VALUE!=hsource) { coutCould not open the source file!endl; return; } hDest=CreateFile(nobuffer.txt,//创建nobuffer.txt这个文件 GENERIC_WRITE,//写 0, NULL, CREATE_ALWAYS, NULL, NULL); if(INVALID_HANDLE_VALUE==hDest)//hDest是创建文件的句柄,如果成功,hDest就是这个文件的句柄,如果失败,返回值就是是INVALID_HANDLE_VALUE { coutCould not create the destination file!endl; return; } if(!ReadFile(hsource,buf,1024,dwRead,NULL)) { coutRead source file error!endl; return; } else coutRead file success!endl; if(dwRead==1024) { cout你的文件可能被截断,请增加缓冲区的大小!endl; } if(!WriteFile(hDest,buf,dwRead,dwWrite,NULL)) { coutRead source file error!endl; return; } else coutWrite file success!endl; CloseHandle(hsource); CloseHandle(hDest); } 四、实验结果与数据处理 实验截图如下 五、分析与讨论 该实验完成无缓

文档评论(0)

34shart09 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档