- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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. 该函数等
您可能关注的文档
最近下载
- 新设计ye2系列电机数据参数表2014-04-24.pdf
- JTG 5210-2018 公路技术状况评定标准(附条文).pdf
- SN_T 3741.1-2013国境口岸鼠类携带病原体检测方法 第1部分:致病性钩端螺旋体PCR检测方法.pdf
- 循环冷却水系统及水质控制指标介绍.pptx
- 武汉市英格中学新初一分班英语试卷.docx VIP
- 初中道德与法治学科作业设计与实施指导意见.docx
- 2023年11月18日成都市纪委监委遴选笔试真题及答案解析.doc VIP
- 人教部编版语文五年级上册第六单元复习课教案.docx
- 装配式公路钢桥使用手册.docx
- 2021 特等奖 南京邮电大学 谢娜 《电路分析基础》教学设计表.pdf
文档评论(0)