[工学]2基本文件IO.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]2基本文件IO

文件基本概念 Linux常见的文件类型: 普通文件 目录文件 设备文件 管道文件 套接字 链接文件 普通文件 普通文件(regular file):普通计算机用户看到的文件,仅仅是Linux文件类型中的一种,我们称之为普通文件,它们通常驻留在磁盘上的某处 文本文件 二进制文件 目录文件 目录文件(directory),主要目的是用于管理和组织系统中的大量文件 设备文件 设备文件,Linux操作系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一,对I/O设备的使用和一般文件的使用一样,不必了解I/O设备的细节。 块设备文件:表示文件系统高速缓存的设备,例如硬盘驱动器 字符设备文件:表示非高速缓存的设备,例如磁带驱动器、鼠标和系统终端 管道文件 管道文件(named pipe),主要用于在进程间传递数据 套接字文件 套接字文件(socket),类似于管道文件。管道文件用于本地通信,而套接字允许网络上的通信 符号链接文件 符号链接文件(symbolic link),这个文件包含了另一个文件的路径名 文件操作基本元素 文件操作相关的最基本元素是:目录结构、索引节点和文件的数据本身 目录结构 索引节点 文件的数据 Linux文件系统结构 Linux文件系统结构 文件系统的三个区域 超级块 i-节点表 数据区 存放文件系统本身的结构信息 存放文件内容 存放i-节点信息列表 属性 Linux文件系统结构 Linux文件系统结构 文件描述符 定义 很小的正整数,是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表,用以标明每个被进程所打开的文件和socket。 FILE结构体 typedef struct iobuf{ int cnt; /*剩余的字节数*/ char *ptr; /*下一个字符的位置*/ char *base; /*缓冲区的位置*/ int flag; /*文件访问模式*/ int fd; /*文件描述符*/ }FILE; 文件描述符与文件指针 文件描述符?文件指针:fdopen(): fd?FILE* 文件指针?文件描述符:fileno():FILE*?fd 标准文件描述符 特殊的文件描述符 0 1 2 终端 标准文件描述符 0:stdin-----需要处理的数据流 1:stdout---结果数据流 2:stderr---错误消息流 文件操作方式 系统调用 兼容POSIX标准,基于文件描述符的I/O,对文件描述符进行操作 标准库函数 遵守ANSI标准,基于流的I/O,对文件指针(FILE结构体)进行操作 文件操作方式 系统调用与C库 fopen示例 FILE * fopen(const char *name, const char *mode) { …… if ((rwflags O_TRUNC)|| (((fd = open(name, rwmode)) 0) (rwflags O_CREAT))) { if (((fd = creat(name, PMODE)) 0) flags | _IOREAD) { close(fd); fd = open(name, rwmode); } …… } 文件访问系统API 最常用的文件操作系统调用 open() 打开文件 create() 创建文件 close() 关闭文件 read() 读取文件 write() 写入文件 lseek() 移动文件指针 fcntl() access() 文件控制 open()系统调用 #include sys/types.h #include sys/stat.h #include fcntl.h int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 欲打开文件路径字符串 对文件操作的标志 新建文件访问权限 成功返回文件 描述fd open()系统调用的标志 O_RDONLY 以只读方式打开文件 O_WRONLY 以只写方式打开文件 O_RDWR 以读写方式打开文件 O_APPEND 以追加模式打开文件,在每次写入操作指向之前,自动将文件指针定位到

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档