Linux 2.6 中的文件访问方式

Linux中open的函数原型有两个:
int open(const char *path, int oflags);
int open(const char *path, int oflags, mode_t mode );
参数说明:
path:准备打开的文件或设备名字。
oflags:指出要打开文件的访问模式。

open调用可以在oflags参数中包括下列可选模式的组合(用”按位或“操作):

  • O_APPEDN: 把写入数据追加在文件的末尾。
  • O_TRUNC: 把文件长度设为零,丢弃以后的内容。
  • O_CREAT: 如果需要,就按参数mode中给出的访问模式创建文件。
  • O_EXCL: 与O_CREAT一起调用,确保调用者创建出文件。该模式可防止两个程序同时创建一个文件,文件若存在,open调用失败。

使用O_CREAT标志时必须使用三个参数格式的open调用,mode 是几个标志按位OR而得到:

  • S_IRUSR: 读权限,文件属主。
  • S_IWUSR:写权限,文件属主。
  • S_ IXUSR:执行权限,文件属主。
  • S_IRGRP:读权限,文件所属组。
  • S_IWGRP:写权限,文件所属组  
 文件访问模式可参考:                                                            

标识符名 标识符描述
O_RDONLY 以只读的方式打开文件
O_WRONLY 以只写的方式打开文件
O_RDWR 以读写的方式打开文件
O_CREAT 若文件不存在,则创建该文件
O_EXCL 以独占模式打开文件;若同时设置 O_EXCL 和 O_CREATE, 那么若文件已经存在,则打开操作会失败
O_NOCTTY 若设置该描述符,则该文件不可以被当成终端处理
O_TRUNC 截断文件,若文件存在,则删除该文件
O_APPEND 若设置了该描述符,则在写文件之前,文件指针会被设置到文件的底部
O_NONBLOCK 以非阻塞的方式打开文件
O_NELAY 同 O_NELAY,若同时设置 O_NELAY 和 O_NONBLOCK,O_NONBLOCK 优先起作用
O_SYNC 该描述符会对普通文件的写操作产生影响,若设置了该描述符,则对该文件的写操作会等到数据被写到磁盘上才算结束
FASYNC 若设置该描述符,则 I/O 事件通知是通过信号发出的
O_DIRECT 该描述符提供对直接 I/O 的支持
O_LARGEFILE 该描述符提供对超过 2GB 大文件的支持
O_DIRECTORY 该描述符表明所打开的文件必须是目录,否则打开操作失败
O_NOFOLLOW 若设置该描述符,则不解析路径名尾部的符号链接


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值