文件 I/O 操作 open(),close(),read()和 w rite()函数详解 1. open()函数 功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。 所需头文件:#include ,#include ,#include 函数原型:int open(const char *pathname,int flags,int perms) 参数: pathname:被打开的文件名(可包括路径名如"dev/ttyS0") flags:文件打开方式, O_RDONLY:以只读方式打开文件 O_WRONLY:以只写方式打开文件 O_RDWR:以读写方式打开文件 O_CREAT:如果改文件不存在,就创建一个新的文件,并用第三个参数为其设置权限 O_EXCL:如果使用 O_CREAT 时文件存在,则返回错误消息。这一参数可测试文件是否存在。此时 open 是原子操作,防止多个进程同时创建同一个文件 O_NOCTTY:使用本参数时,若文件为终端,那么该终端不会成为调用 open()的那个进程的控制终端 O_TRUNC:若文件已经存在,那么会删除文件中的全部原有数据,并且设置文件大小为 0 O_APPEND:以添加方式打开文件,在打开文件的同时,文件指针指向文件的末尾,即将写入的数据添加到文件的末尾 O_NONBLOCK: 如果 pathname 指的是一个 FIFO、一个块特殊文件或一个字符特殊文件,则此选择项为此文件的本次打开操作和后续的 I/O 操作设置非阻塞方式。 O_SYNC:使每次 write 都等到物理 I/O 操作完成。 O_RSYNC:read 等待所有写入同一区域的写操作完成后再进行 在 open()函数中,falgs 参数可以通过“|”组合构成,但前 3 个标准常量(O_RDONLY,O_WRONLY,和 O_RDWR)不能互相组合。 perms: 被 打 开 文 件 的 存 取 权 限 , 可 以 用 两 种 方 法 表 示 , 可 以 用 一 组 宏 定 义 :S_I(R/W/X)(USR/GRP/OTH),其中 R/W/X 表示读写执行权限, USR/GRP/OTH分 别 表 示 文 件 的 所 有 者 / 文 件 所 属 组 / 其 他 用 户 , 如S_IRUUR|S_IWUUR|S_IXUUR,(-rex------),也可用八进制 800 表示同样的权限 返回值: 成功:返回文件描述符 失败:返回-1 2. close()函数 功能描述:用于关闭一个被打开的的文件 所需头文件: #include 函数原型:int close(int fd) 参数:fd 文件描述符 函数返回值:0 成功,-1 出错 3. read()函数 功能描述: 从文件读取数据。 所需头文件: #include