表头文件
#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);
函数使用说明:
open函数,打开一个文件时,返回未被使用的最小文件描述符(非负整数),失败返回-1。默认已打开三个文件描述符(0:标准输入,1:标准输出,2:标准出错)。
参数说明:
pathname 参数是待打开/创建的文件名;
mode:(flag有O_CREAT 才指定mode)指定新建文件权限位,可以用八进制表示,如0644表示-rw-r--r--(所属者可读可写,同组用户可读,其他组用户可读)
flag 参数可以为:
必选项:
O_RDONLY 只读打开
O_WRONLY 只写打开
O_RDRW可读可写打开
可选项:O_APPEND 表示追加,每次写操作都写入文件的末尾
O_CREAT 若文件不存在则新建
O_EXCL 如果同时指定O_CREAT,表示必须新建文件,并且文件存在,则出错返回。
O_TRUNC 如果文件已存在,并且以只写或可读可写方式打开,则将其长度截断(Truncate)为0个字节
O_NONBLOCK 对于设备文件,以O_NONBLOCK方式打开可以做非阻塞I/O
以下三个常量同样是选用的,它们用于同步输入输出
O_DSYNC 等待物理 I/O 结束后再 write。在不影响读取新写入的数据的前提下,不等待文件属性更新。
O_RSYNC read 等待所有写入同一区域的写操作完成后再进行
O_SYNC 等待物理 I/O 结束后再 write,包括更新文件属性的 I/O
总结