欢迎来到天天文库
浏览记录
ID:39467422
大小:75.00 KB
页数:5页
时间:2019-07-04
《POSIX IO的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五POSIXIO的应用班级B08512姓名张一梦学号20084051211日期2011/3/25成绩评定1.实验目的(1)掌握Linux系统中文件的创建、打开、关闭、读、写等函数的使用(2)掌握open、read、write、fcntl等系统调用的使用(3)掌握readdir、mkdir、rmdir、getcwd、get_current_dir_name等对目录文件的操作函数2.实验环境已安装Linux操作系统的微机一台3.实验内容(1)阅读程序,了解系统调用open、creat、read、write等系统的使用①
2、#include#include#include#include#include#includeintmain(){intfd;if((fd=open("example_62.c",O_CREAT
3、O_EXCL,S_IRUSR
4、S_IWUSR))==-1){//if((fd=creat("example_62.c",S_IRWXU))==-1){perror("open");//printf("o
5、pen:%switherrno:%d",strerror(errno),errno);exit(1);}else{printf("createfilesuccess");}close(fd);return0;}程序运行结果:使用open运行结果如图1所示,使用creat运行结果如图1所示5 图1open运行结果图2creat运行结果回答问题:open与creat的异同点。②#include#include#include#include6、tl.h>#include#include/*自定义的错误处理函数*/voidmy_err(constchar*err_string,intline){fprintf(stderr,"line:%d",line);perror(err_string);exit(1);}/*自定义的读数据函数*/intmy_read(intfd){intlen;intret;inti;charread_buf[64];/*获取文件长度并保持文件读写指针在文件开始处*/if(lseek(fd,0,SE7、EK_END)==-1){my_err("lseek",__LINE__);}if((len=lseek(fd,0,SEEK_CUR))==-1){my_err("lseek",__LINE__);}if((lseek(fd,0,SEEK_SET))==-1){5 my_err("lseek",__LINE__);}printf("len:%d",len);/*读数据*/if((ret=read(fd,read_buf,len))<0){my_err("read",__LINE__);}/*打印数据*/for(i=8、0;i9、O_CREAT10、O_TRUNC,S_IRWXU))==-1){my_err("open",_11、_LINE__);}else{printf("createfilesuccess");}/*写数据*/if(write(fd,write_buf,strlen(write_buf))!=strlen(write_buf)){my_err("write",__LINE__);}my_read(fd);/*演示文件的间隔*/printf("/*--------------------*/");if(lseek(fd,10,SEEK_END)==-1){my_err("lseek",__LINE__);}if(wri12、te(fd,write_buf,strlen(write_buf))!=strlen(write_buf)){my_err("write",__LINE__);}my_read(fd);close(fd);return0;}程序运行结果如图3所示:5 图3运行结果回答问题:read、write、lseek等函数的作用。(2)程序设
6、tl.h>#include#include/*自定义的错误处理函数*/voidmy_err(constchar*err_string,intline){fprintf(stderr,"line:%d",line);perror(err_string);exit(1);}/*自定义的读数据函数*/intmy_read(intfd){intlen;intret;inti;charread_buf[64];/*获取文件长度并保持文件读写指针在文件开始处*/if(lseek(fd,0,SE
7、EK_END)==-1){my_err("lseek",__LINE__);}if((len=lseek(fd,0,SEEK_CUR))==-1){my_err("lseek",__LINE__);}if((lseek(fd,0,SEEK_SET))==-1){5 my_err("lseek",__LINE__);}printf("len:%d",len);/*读数据*/if((ret=read(fd,read_buf,len))<0){my_err("read",__LINE__);}/*打印数据*/for(i=
8、0;i9、O_CREAT10、O_TRUNC,S_IRWXU))==-1){my_err("open",_11、_LINE__);}else{printf("createfilesuccess");}/*写数据*/if(write(fd,write_buf,strlen(write_buf))!=strlen(write_buf)){my_err("write",__LINE__);}my_read(fd);/*演示文件的间隔*/printf("/*--------------------*/");if(lseek(fd,10,SEEK_END)==-1){my_err("lseek",__LINE__);}if(wri12、te(fd,write_buf,strlen(write_buf))!=strlen(write_buf)){my_err("write",__LINE__);}my_read(fd);close(fd);return0;}程序运行结果如图3所示:5 图3运行结果回答问题:read、write、lseek等函数的作用。(2)程序设
9、O_CREAT
10、O_TRUNC,S_IRWXU))==-1){my_err("open",_
11、_LINE__);}else{printf("createfilesuccess");}/*写数据*/if(write(fd,write_buf,strlen(write_buf))!=strlen(write_buf)){my_err("write",__LINE__);}my_read(fd);/*演示文件的间隔*/printf("/*--------------------*/");if(lseek(fd,10,SEEK_END)==-1){my_err("lseek",__LINE__);}if(wri
12、te(fd,write_buf,strlen(write_buf))!=strlen(write_buf)){my_err("write",__LINE__);}my_read(fd);close(fd);return0;}程序运行结果如图3所示:5 图3运行结果回答问题:read、write、lseek等函数的作用。(2)程序设
此文档下载收益归作者所有