- 3
- 0
- 约9.48千字
- 约 39页
- 2017-06-03 发布于湖北
- 举报
* 2-2 open/close与creat/unlink #include fcntl.h #include sys/types.h #include sys/stat.h int open(char *name, int flags);或 int open(char *name, int flags, mode_t mode); 成功返回文件描述符(非负数),失败返回负数。 O_RDONLY O_WRONLY O_RDWD …. …. 指明文件的权限 2-2 open/close与creat/unlink #include fcntl.h #include sys/types.h #include sys/stat.h int creat(char *name, mode_t mode); 成功返回文件描述符(非负数),失败返回负数。 指明文件的权限 open()函数的flag | O_CREAT也可以用创建新文件 2-2 open/close与creat/unlink 简化的cp程序 if((f1 = open(argv[1], O_RDONLY, 0)) == -1) error(cp: cant open %s, argv[1]); if ((f2 = creat(argv[2], O_RDWR)) == -1) error(cp: cant create %s, mode %03o, argv[2], O_RDWR); while ((n = read(f1, buf, BUFSIZ)) 0) if (write(f2, buf, n) != n) error(cp: write error on file %s, argv[2]); 打开文件1和文件2 从f1读取BUFSIZ个字符到缓冲区 把读取缓冲区中的数据写入到文件2 2-2 open/close与creat/unlink #include unistd.h int close(int fd); int unlink(const char *pathname); 用open或creat函数返回的文件描述作为参数,意为关闭,之后文件描述符不可再用 注意此函数以文件路径名为参数,和remove库函数意义相同 成功返回0,失败返回-1,高质量的编程应该检查返回值。 2-3随机访问-lseek …. …. …. …. 读文件 写文件 read两个字节后,文件的位置在哪? Read是指针自动向后移动 write两个字节后,文件的位置在哪? Write也是指针自动向后移动 如果我想随机的移动怎么办? 2-3随机访问-lseek 在文件中任意移动位置、而不读写数据。 #include sys/types.h #include unistd.h off_t lseek(int fd, off_t offset, int whence); 取值为: SEEK_SET SEEK_CUR SEEK_END 相对于whence的偏移量 返回相对于文件开始位置的偏移量 2-3随机访问-lseek #include unistd.h #include sys/types.h ? /*get: 从pos位置处读取n个字节 */ int get(int fd, long pos, char *buf, int n) { if (lseek(fd, pos, 0) = 0) return read(fd, buf, n); else return -1; } 需要确保操作成功,这是常见的编程失误 2-4其他的常用文件IO API #include stdio.h int fileno(FILE *stream); 在文件指针和文件描述符之间建立对应关系 #include sys/types.h #include sys/stat.h #include unistd.h int mkdir(const char *pathname,mode_t mode); int rmdir(const char *pathname); 创建和删除目录。 2-4其他的常用文件IO API #include sys/types.h #include dirent.h DIR *opendir(const char *name); struct dirent *readdir(DIR *dir); int closedir(DIR *dir); void rewinddir(DIR *dirp); 打开目录。 读取目录,返回一个dirent结构 关闭打开的目录 返回到目录的头部 #include sys/types.h #include sy
您可能关注的文档
- 第四章 数据仓库的建立与维护.pdf
- 0-3岁性恪培养好故事.doc
- 第四章 条件格式及函数.ppt
- 01 地球与地球仪 - 答案.doc
- 01、《培养一个真正人》——文名学堂.doc
- 01-第1节 初见端倪.ppt
- 01第一节 标志设计概述.ppt
- 第四章 系统软件和常用操作系统.ppt
- 第四章 现代操作系统的设计与实现.pdf
- 第四章 选择及编辑二维图形对象.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 西方经济学-马工重点教材-第1章.ppt VIP
- nex-6使用说明书手册.pdf
- 西方经济学-马工程重点教材-第3章.ppt VIP
- 西方经济学-马工重点教材-第2章.ppt VIP
- 2025年安徽省公务员考试法律专业试卷(真题及答案) .pdf VIP
- 2025台州三门县国有企业公开招聘工作人员33人笔试参考试题附答案解析.docx VIP
- 电力系统优化与调度软件:AIMMS二次开发_(3).AIMMS中的数学优化理论.docx VIP
- 《中国黄金集团内蒙古矿业有限公司较大坠落事故调查报告》公布.docx VIP
- 市政工程施工组织设计(范本).doc VIP
- 能源优化建模:AIMMS二次开发_(2).AIMMS基础与高级编程.docx VIP
原创力文档

文档评论(0)