open()

open()

int open(const char * pathname, int flags, ... /*mode_t mode*/); // <fcntl.h>

打开文件, 如果 flags 并未指定 O_CREAT 标志,则可以省略 mode 参数

参数:

namedes
pathname文件名
flags详见flags
...…
mode_t mode模式

返回:

文件描述符


常见用法

  • open("a.txt", O_CREAT | O_EXCL)
  • 如果文件已经存在, 就返回错误, 并设置错误码 EEXIST
  • 否则 创建并且打开文件

flags

标 志用 途
O_RDONLY以只读方式打开
O_WRONLY以只写方式打开
O_RDWR以读写方式打开
O_CLOEXEC设置 close-on-exec 标志(自 Linux 2.6.23 版本开始)
O_CREAT若文件不存在则创建之
O_DIRECT无缓冲的输入/输出
O_DIRECTORY如果 pathname 不是目录, 则失败
O_EXCL结合 O_CREAT 参数使用, 专门用于创建文件
O_LARGEFILE在 32 位系统中使用此标志打开大文件
O_NOATIME调用 read()时, 不修改文件最近访问时间(自 Linux 2.6.8 版本开始)
O_NOCTTY不要让 pathname(所指向的终端设备)成为控制终端
O_NOFOLLOW对符号链接不予解引用
O_TRUNC截断已有文件, 使其长度为零
O_APPEND总在文件尾部追加数据
O_ASYNC当 I/O 操作可行时, 产生信号(signal)通知进程
O_DSYNC提供同步的 I/O 数据完整性(自 Linux 2.6.33 版本开始)
O_NONBLOCK以非阻塞方式打开
O_SYNC以同步方式写入文件

mode

访 问 模 式描 述
O_RDONLY以只读方式打开文件
O_WRONLY以只写方式打开文件
O_RDWR以读写方式打开文件

受 umask 的影响

常 量其 他 值权 限 位
S_ISUID04000Set-user-ID
S_ISGID02000Set-group-ID
S_ISVTX01000Sticky
S_IRUSR0400User-read
S_IWUSR0200User-write
S_IXUSR0100User-execute
S_IRGRP040Group-read
S_IWGRP020Group-write
S_IXGRP010Group-execute
S_IROTH04Other-read
S_IWOTH02Other-write
S_IXOTH01Other-execute

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇