打开(" / tmp",O_RDWR | O_TMPFILE,0)失败,权限被拒绝

时间:2015-04-23 11:59:36

标签: c

我试图使用

打开一个临时文件
fd = open("/tmp", O_RDWR | O_TMPFILE, 0);
if (fd == -1) {
    perror("open()");
    exit(1);
}

我得到" open():权限被拒绝"。

我在/ tmp:

中拥有权限
drwxrwxrwt  13 root root 1.2K Apr 23 13:55 /tmp/

我相信我的内核对于O_TMPFILE来说已经足够新了:

Linux frosties 3.14-1-amd64 #1 SMP Debian 3.14.2-1 (2014-04-28) x86_64 GNU/Linux

我错过了什么?

1 个答案:

答案 0 :(得分:2)

调用失败,因为您指定了模式0,这意味着没有权限。有关Linux内核的此行为以及明显的错误修正的讨论,请参阅this LWN article