linux中文件有专门打开方式:open,返回文件操作符
O_RDONLY:
打开一个只能读取的文件。
● O_WRONLY:
打开一个只能写入的文件。
● O_RDWR:
打开一个可读写的文件,
●
O_APPEND
:
写入的所有数据将被追加到文件的末尾。
●
O_CREAT
:
打开文件,如果文件不存在就建立文件。
● O_EXCL:
如果已经置
O_CREAT
且文件存在,就强制
open
失败。//极少用
●
O_TRUNC:
在打开文件时,将文件的内容清空。
以下三个打开方式,与文件的同步方式有关,对性能有影响:
需要使用头文件:
fcntl.h
● O_DSYNC:
● O_RSYNC:
● O_SYNC:
O_RSYNC, O_DSYNC,
和
O_SYNC
与文件的同步方式有关。
O_RSYNC
:
这个标志确保每个以文件描述符作为参数的
read
操作等待,直到所有对文件同一部分的未
决
write
操作完成。
这意味着,当一个进程对一个文件执行
write
操作后,其他进程对该文件的
read
操作需要等
待直到写入操作完成,以确保数据的一致性。
O_DSYNC
:
与
O_RSYNC
类似,但每次执行
write
操作都等待物理
I/O
完成。
O_SYNC
:
这个标志要求任何
write
操作阻塞,直到所有数据和所有元数据都被写入持久存储。
这是最严格的同步选项,确保了数据的安全写入磁盘,但可能会牺牲一些性能。
CREAT=O_WRONLY|O_CREAT|O_TRUNC