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

标签 c

我正在尝试使用

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

我得到“open(): Permission denied”。

我在/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

我错过了什么?

最佳答案

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

关于c - 打开 ("/tmp", O_RDWR | O_TMPFILE, 0) 失败,权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822827/

相关文章:

c - 发送以太网数据包时额外填充?

c - 为什么 Xlib 规范不使用指向 struct Window 的指针?

c - 我怎样才能以这种方式拆分这个链表

c - 为什么在Eclipse中的printf之前执行scanf?

c - 给数组赋值需要memcpy

使用 C 的编译器选项捕获浮点异常

c - avr-gcc Arduino atmega2560 使用太多 RAM

c - 使用 SDL 将图像转换为 ASCII-art?

C:缓冲区溢出,更改传递的变量

C 宏 - 通过指针传递与传递给宏时的复制/错误