【发布时间】:2021-10-20 08:53:11
【问题描述】:
我尝试打开文件进行读写,但出现下一个错误“fd error : 权限被拒绝”
int fd = open("newfile.txt",O_RDWR);
if(fd == -1)
{
perror("fd error\n");
}
*更新
我添加了此权限,但仍然出现同样的错误
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
int fd = open("newfile.txt",O_RDWR | O_CREAT | O_TRUNC, mode);
if(fd == -1)
{
perror("fd error\n");
}
【问题讨论】:
-
newfile.txt有读写权限吗? -
或者如果
newfile.txt最初不存在,那么你对当前工作目录有写权限吗? -
您是否拥有读取或写入文件的正确权限?还是在它所在的目录上?还是路径中的任何父目录?
-
另外,要使用
open创建一个新文件,您必须使用O_CREAT标志,并提供保护标志作为第三个参数。 -
在执行程序时在您所在的目录中执行
ls -ld . newfile.txt。也做id并将两者的输出放在问题中。