没有合适的资源?快使用搜索试试~ 我知道了~
该文档是对文件操作 API 做一个解释与讲解,文件操作一直以来是作为嵌入式程 序员必要掌握的一个操作,因为在 linux 系统中,万物皆文件,所以掌握好文件操作非常重 要…。
资源推荐
资源详情
资源评论
文件 IO
嵌入式
[日期]
ID:九月
邮箱:3154643536@qq.com
1
前言
该文档是对文件操作 API 做一个解释与讲解,文件操作一直以来是作为嵌入式程
序员必要掌握的一个操作,因为在 linux 系统中,万物皆文件,所以掌握好文件操作非常重
要…。
修订记录
2
目录
前言 .................................................................................................................................................................................... 1
1.文件操作概述 ............................................................................................................................................................ 7
1.1.虚拟文件系统............................................................................................................................................... 7
1.2.虚拟文件系统的主要模块 ....................................................................................................................... 7
1.3.进程和虚拟文件的交互 ............................................................................................................................ 8
1.4.缓存 I/O ......................................................................................................................................................... 9
1.5.linux2.6 中的直接 I/O 技术 .................................................................................................................. 9
1.5.1.标准访问文件的方式 ................................................................................................................ 10
1.5.2.同步访问文件的方式 ................................................................................................................ 10
1.5.3.内存映射的方式 ......................................................................................................................... 10
1.5.4.直接 I/O 方式 .............................................................................................................................. 10
1.5.5.异步访问文件的方式 ................................................................................................................ 11
2.linux 系统 I/O 接口 ............................................................................................................................................. 11
2.1.打开文件函数............................................................................................................................................ 11
2.1.1.open 函数 ...................................................................................................................................... 11
2.1.2.creat 函数 ................................................................................................................................... 13
2.1.3.openat 函数 ................................................................................................................................. 14
2.2.关闭文件函数(close) ........................................................................................................................... 15
2.3.读写文件操作............................................................................................................................................ 15
2.3.1.读文件操作(read) .................................................................................................................... 15
2.3.2.写文件操作(write) .................................................................................................................. 16
2.4.文件光标偏移操作(lseek) .................................................................................................................. 16
2.5.设置文件掩码............................................................................................................................................ 17
2.5.1.文件掩码概述 .............................................................................................................................. 17
2.5.2.API(umask) .................................................................................................................................. 17
2.6.获取程序工作路径 .................................................................................................................................. 18
2.6.1.getwd 函数 ................................................................................................................................... 18
3
2.6.2.getcwd 函数 ................................................................................................................................. 18
2.6.3.get_current_dir_name 函数 ................................................................................................. 19
2.7.修改工作路径............................................................................................................................................ 19
2.7.1.chdir 函数 ................................................................................................................................... 19
2.7.1.fchdir 函数 ................................................................................................................................. 20
2.8.文件截断操作............................................................................................................................................ 20
2.8.1. truncate 函数 .......................................................................................................................... 20
2.8.2. ftruncate 函数 ........................................................................................................................ 21
2.9.文件删除操作............................................................................................................................................ 21
2.9.1.unlink 函数 ................................................................................................................................. 21
2.9.2.rmdir 函数 ................................................................................................................................... 22
2.9.3.remove 函数 ................................................................................................................................. 22
2.10.获取文件属性操作 ................................................................................................................................ 22
2.10.1.stat 函数 ................................................................................................................................... 22
2.10.2.fstat 函数 ................................................................................................................................. 23
2.10.3.lstat 函数 ................................................................................................................................. 24
2.10.4.stat 判断文件类型 ................................................................................................................. 26
2.10.5.stat 判断文件权限 ................................................................................................................. 27
2.11.目录打开操作 ......................................................................................................................................... 28
2.11.1.opendir 函数............................................................................................................................. 28
2.11.2.fdopendir 函数 ........................................................................................................................ 29
2.12.创建目录接口(madir) ......................................................................................................................... 29
2.13.读取目录项接口(readdir) ................................................................................................................ 30
2.14.关闭目录接口(closedir) .................................................................................................................. 31
2.15.目录操作示例程序 ................................................................................................................................ 31
2.16.动态库操作-打开(装载)动态库文件接口 .................................................................................... 32
2.17.动态库操作-关闭(卸载)动态库文件接口 .................................................................................... 34
2.18.动态库操作-查询动态库内容接口 .................................................................................................. 34
2.19.动态库操作-dlerror ........................................................................................................................... 35
4
2.20.文件描述符更变操作(dup) ................................................................................................................ 35
2.21.文件控制-fcntl 函数 .......................................................................................................................... 36
3.标准 I/O 接口 ......................................................................................................................................................... 39
3.1.打开一个文件流 ....................................................................................................................................... 40
3.1.1.fopen 函数 ................................................................................................................................... 40
3.1.2.fdopen 函数 ................................................................................................................................. 41
3.1.3.freopen 函数 ............................................................................................................................... 41
3.1.4.二进制方式打开文件和文本方式打开文件的区别 ........................................................ 43
3.2.关闭一个文件流 ....................................................................................................................................... 43
3.3.读取文件流 ................................................................................................................................................ 44
3.3.1.fgetc 和 getc 函数 ................................................................................................................... 44
3.3.2.ungetc 推入流函数 ................................................................................................................... 44
3.3.3.fgets 函数 ................................................................................................................................... 45
3.3.4.fread 函数 ................................................................................................................................... 46
3.4.写入文件流 ................................................................................................................................................ 46
3.4.1.putc 和 fputc 函数 ................................................................................................................... 46
3.4.2.fputs 函数 ................................................................................................................................... 47
3.4.3.fwrite 函数 ................................................................................................................................. 47
3.5.同步(冲洗)流操作(fflush) ................................................................................................................ 48
3.6.文件出错和结束判断 .............................................................................................................................. 49
3.6.1.feof 函数 ...................................................................................................................................... 49
3.6.2.feof 函数 ...................................................................................................................................... 49
3.6.3. clearerr 函数 ........................................................................................................................... 49
3.7.文件流指针转文件描述符(fileno) .................................................................................................. 50
3.8.文件流指针定位操作 .............................................................................................................................. 50
3.8.1.fseek 函数 ................................................................................................................................... 50
3.8.2.ftell 函数 ................................................................................................................................... 51
3.8.3. rewind 函数 ................................................................................................................................ 52
3.9.面经 .............................................................................................................................................................. 52
剩余80页未读,继续阅读
资源评论
九月丫
- 粉丝: 44
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功