【问题标题】:Error opening file for read and write in Unix on Ubuntu在 Ubuntu 上的 Unix 中打开文件进行读写时出错
【发布时间】: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 并将两者的输出放在问题中。

标签: c unix


【解决方案1】:

更改权限并重试。如果 fd 为 -1,则表示文件未被操作系统加载。

【讨论】:

    猜你喜欢
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2016-09-02
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    相关资源
    最近更新 更多