linux环境高级编程实验报告1

linux环境高级编程实验报告1

ID:28446093

大小:79.70 KB

页数:3页

时间:2018-12-10

linux环境高级编程实验报告1_第1页
linux环境高级编程实验报告1_第2页
linux环境高级编程实验报告1_第3页
资源描述:

《linux环境高级编程实验报告1》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、作业报告学生姓名:学号:指导教师:学生E-mail:一、作业名称O_APPEND与读操作二、作业要求使用LinuxAPI进行文件操作吋,首先会使用open/creat打开或创建一个文件,接着使用lseek指定从什么地方开始进行文件的读写,之后即可调用read/write读写文件,最后文件读写完毕,调用close关闭文件。对于open函数,可以通过函数原型中的第二个参数來控制文件打开的模式,其中O_APPEND标志表示以该模式打开文件吋,每次写的数据都会放在文件尾部,这点也以通过课堂实验验证了其正确性。那么本文是通过自行设

2、计程序验证以下两点:①、以O_APPEND模式打开文件后,能否再用lseek改变文件偏移景;②、若能够用lseek改变文件偏移量,读操作会如何进行,是否像写操作那样,每次都从文件尾部读,或者其他方式。三、设计与实现思路如下:首先以CLAPPEND方式打幵一个文件,使用lseek多次修改文件的偏移量,并记录每次修改后的文件偏移量,最G进行比较,得出结论:若修改后的偏移量改变,说明以O_APPEND方式打开文件,仍能够用lseek改变文件偏移量。反之则不成立。另外,在每次lseek对偏移量进行修改后,进行读操作,比较读出的结

3、果来判断其体的读操作。测试测试过程如卜、以O_APPEND方式打开文件(测试文件textl.txt以创建):intfd=open("exl_test.txt",O_RDWR

4、O_APPEND);第一次用lseek修改偏移量,进行读操作:off_tCurrentPosition1=lseek(fd,O,SEEK_CUR);cout«"FirstCurrentPositionis:H«CurrentPosition1«endl;read(fd,&word_read1,sizeof(word_read1));实际上米修改,打印

5、打开后文件当前偏移量,读出文件的第一个字符。第二次用Iseek修改偏移量,进行读操作:off_tCurrentPosition2=lseek(fd,9,SEEK_CUR);read(fd,&word_read2,sizeof(word_read2));这次从当前偏移量A后移动9个字节,读出字符。第三次用Iseek修改偏移量,进行读操作:off_tCurrentPosition3=lseek(fd,2,SEEK_SET);read(fd,&word_read3,sizeof(word_read3));这次从文件头向•移动2

6、个字节的偏移量,读出字符。测试结果如图4-1所示:cpproot@ujuxuanle:"#Iscexl_test.cppexl_test.txtroot@iuuxuanle:g++-oexl.testexl.testroot@ujuxuanle:catexl_test.txt2YXWVUTSRQP0root@ujuxuanle:Is10Pcexl.testexl_test.cppexl_test.txtroot@ujuxuanle:./exl_testFirstCurrentPositionis:0Readtheword

7、firstlyis:ZSecondCurrentPositionisReadthewordsecondlyisThirdCurrentpositionis:Readthewordthirdlyis:root@ujuxuanle:图4-1测试程序的运行结果从阁4-1所示的运行结果可以看出,三次不同的偏移景修改后,文件偏移量不同,说明以O_APPEND方式打开文件,仍然能够用Iseek修改偏移量。而三次读出的结果也都不同,说明以O_APPEND方式打开文件后,可以从任意位置进行文件的读操作。五、对本课程或本作业的建议和意见作

8、业一是对文件操作的练习,该部分是后面实现H志的基础,主要利用到Linux提供的API函数进行文件操作。关键之处在于三点:丨、对于新接触的内容,要学会与过去内容进行对比学习;2、耍思考本质问题,并提出一些质疑;3、对于提出的问题可以作出一些判断,最重耍的是动手去验证这些问题。建议:课吋等原凶的限制,整个课程的学>]进度比较快,不过还是希帮讲解慢点,尤其是晚上的课吋,注意力很难集屮。六、附录intmain(){charword_read1,word_read2,word_read3;//记隶读出字符intfd=open(He

9、xl_test.txt'O_RDWR

10、O_APPEND);//O_APFEND方式打开文件if(fd==-l){}off」CurrentPositionl=Iseek(fd,0,SEEK_CUR);//第一次修改偏移fi并记录if(CurrcntPosition1==-!){cout«"FirstCurrentPo

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

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

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