gpt4 book ai didi

c - 访问我使用同一应用程序创建的文件时,Linux 中的权限被拒绝

转载 作者:IT王子 更新时间:2023-10-29 01:26:26 25 4
gpt4 key购买 nike

我正在开发一个需要存储一些信息的程序,我决定为其使用一个简单的文件。

程序启动时会执行以下代码,如果文件存在则以追加模式打开文件,如果不存在则创建文件(程序第一次加载时应该在下次加载时创建它,它只需要使用相同的文件)

if((fd = open(path, O_APPEND|O_CREAT|O_RDWR, 666)) < 0)
{
perror("Database open failed");
}
else if(chmod(path, 666) < 0)
{
perror("Database set permissions failed");
}
else if((stream = fdopen(fd, "a+")) == NULL)
{
perror("Database get stream failed");
}

当文件不存在时,创建成功,程序运行正常。但是当文件已经存在时,它会显示“权限被拒绝”,即使它是创建该文件的同一用户下的同一程序。

更多细节:

  • 我正在使用 Ubuntu 12.04 LTS
  • 当我使用“ls -l”检查文件的权限时:“--w--wx-wT”
  • 从终端使用 666 chmod 解决问题
  • 代码中的 chmod() 完全没有帮助

谢谢!

最佳答案

open() 的模式必须是八进制,即 666 应该是 0666

最好使用模式的符号常量。

关于c - 访问我使用同一应用程序创建的文件时,Linux 中的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29825242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com