




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 POSIX IO的应用班级 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等系统的使用#include #include #include #include #include #include int main()int fd;if (fd = open(example_62.c, O_CREAT|O_EXCL, S_IRUSR| S_IWUSR) = -1) /if (fd = creat(example_62.c, S_IRWXU) = -1) perror(open); /printf(open:%s with errno:%dn,strerror(errno),errno);exit(1); else printf(create file successn);close(fd);return 0;程序运行结果:使用open 运行结果如图1所示,使用creat 运行结果如图1所示图1 open 运行结果图2 creat 运行结果回答问题:open与creat的异同点。#include #include #include #include #include #include /*自定义的错误处理函数*/void my_err(const char * err_string, int line)fprintf(stderr, line:%d , line);perror(err_string);exit(1);/*自定义的读数据函数*/int my_read(int fd)intlen;intret;inti;charread_buf64;/*获取文件长度并保持文件读写指针在文件开始处*/if (lseek(fd, 0, SEEK_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) my_err(lseek, _LINE_);printf(len:%dn, len);/*读数据*/if (ret = read(fd, read_buf, len) 0) my_err(read, _LINE_);/*打印数据*/for (i=0; ilen; i+) printf(%c, read_bufi);printf(n);return ret;int main()intfd;char write_buf32 = Hello World!;/*在当前目录下创建文件example_63.c*/if (fd = creat(example_63.c, S_IRWXU) = -1) if (fd = open(example_63.c, O_RDWR|O_CREAT|O_TRUNC, S_IRWXU) = -1) my_err(open, _LINE_); else printf(create file successn);/*写数据*/if (write(fd, write_buf, strlen(write_buf) != strlen(write_buf) my_err(write, _LINE_);my_read(fd);/*演示文件的间隔*/printf(/*-*/n);if (lseek(fd, 10, SEEK_END) = -1) my_err(lseek, _LINE_);if (write(fd, write_buf, strlen(write_buf) != strlen(write_buf) my_err(write, _LINE_);my_read(fd);close(fd);return 0;程序运行结果如图3所示:图3 运行结果回答问题:read、write、lseek等函数的作用。(2)程序设计 在a目录文件中编写程序,实现在屏幕上显示当前文件所在路径、显示a目录中的所有文件名及文件内容。如:当前路径为:/home/aa. txt:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapress enter to continueb.txt:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbpress enter to continueend源代码:#include#include#include#include#include#includeint main(int argc,char *argv)char *p;p=getcwd(NULL,128);printf(current path:%sn,p);free(p);DIR *dirp;struct dirent *dp1=malloc(sizeof(struct dirent);struct dirent *dp2=malloc(sizeof(struct dirent);dirp=opendir(.);while(1)if(readdir_r(dirp,dp1,&dp2)!=0)perror(readdir);exit(0);if(dp2=NULL)break;if(dp2-d_name0=.)continue;printf(dname=%sn,dp2-d_name);int fd,fd1,num,i;char buf128;if(fd=open(dp2-d_name,O_RDONLY)=-1)perror(file open failuren);exit(0);donum=read(fd,buf,128); for (i=0;inum; i+) printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 废旧船舶拆解作业人员培训与技能提升方案
- 乡村文化传承与创新方案
- 城市道路照明施工安全管理方案
- 牛群健康管理与监控方案
- 中药煎服中药煎服煎药工作制度及操作常规52课件
- 二零二五年度户外广告创意策划与执行合同
- 二零二五年度工业自动化项目承建劳务承包合同
- 2025版股权激励计划实施与协同发展框架协议
- 二零二五年建筑工程项目管理合同承包标准
- 二零二五年度代购服务安全协议
- 安全顾问聘请协议
- 糖尿病酮症酸中毒的护理课件
- 设备材料进场报验单
- 班组长计划管理能力考试题库-上(选择题)
- (完整版)《机械制造工艺基础》教案
- 小学四年级数学口算题(每页60道直接打印).文档
- 诱思探究理论
- 铣床日常点检保养记录表
- 农产品贮藏与加工教案
- 04某污水处理厂630kW柔性支架光伏发电项目建议书
- 2022中国移动通信集团重庆限公司招聘上岸笔试历年难、易错点考题附带参考答案与详解
评论
0/150
提交评论