文件 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