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

文件I/O 一、文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符为一个非负整数。 当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个 文件时,使用open 或create 返回的文件描述符标识该文件,将其作为参数传送给read 或 write。 Unix 系统shell 使用文件描述符0 与进程的标准输入相关联,文件描述符1 与文件的 标准输出相关联,文件描述符2 与文件的标准出错输出相关联。在POSIX 应用程序中,幻 数0,1,2 要分别替换成STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO。这些常量 定义在头文件unistd.h中。 二、open 函数 调用open 函数可打开或创建一个文件。 #include fcntl.h Int open(const char *pathname, int oflag, /*mode_t mode(FILE_MODE)*/) 返回值:成功则返回文件描述符,出错返回-1. 参数介绍: 1. Pathname 指要打开或创建文件的名字(路径名)。 2. oflag 参数用来说明函数的多个选项,用下列一个或多个常量进程或运算构成oflag 参数: O_RDONLY只读打开文件; O_WRONLY只写打开文件; O_RDWR读写打开文件。(以上3 个选项常量中有且只能选择一种) 以下常量则可选择: O_APPEND每次写时追加到文件的尾端。 O_CREAT若此文件不存在则创建它;使用该选项时需要第三个参数mode,用其 指定该新文件的访问权限位((S_IRUSR|S_IWUSR|S_IXUSR)|(S_IRGRP| S_IWGRP|S_IXGRP)|(S_IROTH|S_IWOTH| S_IXOTH))。 O_EXCL测试一个文件是否存在,如果不存在则创建它;其不能与选项O_CREAT 同时使用。 O_TRUNC若文件存在,且为只写或读写成功打开,则将其长度截短为0。 O_NOCTTY如果pathname 指的是终端设备,则不将该设备分配作为进程的控 制终端。 O_NONBLOCK如果pathname 指的是一个FIFO、一个快特殊文件按或一个字 符特殊文件,则此选项为文件的本次打开操作和后续的I/O 操作设置为非阻 塞模式。 以下3 个选项则是Single UNIX Specification(以及POSIX.1)中同步输入和输出的选项的 一部分(很少用) : O_DSYNC使每次write 等待物理I/O 操作完成,但如果写操作不影响读取刚写入 的数据,则不等待文件属性更新。 O_RSYNC使每一个以文件描述符作为参数的read 操作等待,直至任何对文件同 一部分进行的未决写操作完成。 O_SYNC使每次write 都等到物理I/O 操作完成,包括由write 操作引起的文件属 性更新所需的I/O。 3. FILE_MODE 指文件的访问权限,其在第二个参数中有选项O_CREAT 时才能用到,选择 下列中的几个即可: ((S_IRUSR|S_IWUSR|S_IXUSR)|(S_IRGRP| S_IWGRP|S_IXGRP)|(S_IROTH| S_IWOTH| S_IXOTH))。 说明: 由open 返回的文件描述符一定是最小的未用描述符值。 三、creat 函数 也可调用creat 函数创建一个文件。 #include fcntl.h Int creat(const char *pathname, mode_t mode (FILE_MODE)) 返回值:成功返回为只写打开的文件描述符,出错返回-1 参数介绍: 1. pathname 为所要创建的文件的路径名(包括文件名)。 2. FILE_MODE 表示文件的访问权限位,选择下列中的几个即可: ((S_IRUSR|S_IWUSR|S_IXUSR)|(S_IRGRP| S_IWGRP|S_IXGRP)|(S_IROTH| S_IWOTH| S_IXOTH))。 说明: 1. 该函数等

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档