c - 权限被拒绝的 open() 函数

标签 c

我正在尝试在根目录中创建一个“test.txt”文件。目前我还不是 root 用户。我的代码如下:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(){
    int fd;
    fd=open("/test.txt",O_CREAT|O_RDWR|O_TRUNC,0777);
    perror("error: ");
    close(fd);

    return 0;
}

但是,当我编译并执行它时,出现错误:

error: : Permission denied

如何让我的代码具有在根目录中创建文件的权限?

附注我正在尝试使这项工作可行,以便稍后可以使用它将此方法应用到我的 Linux 守护程序中。

最佳答案

    fd=open("/test.txt",O_CREAT|O_RDWR|O_TRUNC,0777);

在这一行中正确指定路径。(即)它是当前工作目录意味着,在 / 之前保留(点).,例如 ./test.txt

关于c - 权限被拒绝的 open() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25701020/

相关文章:

c - MIPS/C 中的钻石排序

c - 需要在套接字服务器 while 循环中澄清

c++ - 将 [][] 放入 **

c++ - C 和 C++ 中的二维数组差异

c - 如何打印C语言中单词的最后一个字母

c - 打印此数组的最简单方法

c - Microchip PIC led flash OR 操作罕见行为

c - 如何区分浮点形式的零和非常小的数字

c - 不理解空指针/如何转换? (C语言编程)

c - 使用系统调用 mount() 以只读方式重新挂载 ext4 文件系统