如果文件由' open'创建。但是没有'模式'指定,模式是什么?

时间:2014-08-17 09:39:32

标签: linux file unix

我尝试在当前目录中创建一个文件“foo”,如下所示:

open(“foo”,O_CREAT | O_EXCL | O_RDWR);

我没有给第三个参数'模式',那会是什么? 在我的ubuntu 14.04上,这个新文件的模式似乎是一个随机值。 “模式”没有默认值吗?

1 个答案:

答案 0 :(得分:2)

在POSIX man 3p open中没有说清楚,但是在Linux man 2 open中:

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
  

mode 指定在创建新文件时使用的权限。在flags中指定O_CREATO_TMPFILE时,必须提供 这个参数。

也就是说,如果未提供mode,则结果为未定义