在 Linux 中打开文件。我不想创建写保护文件

Open file in linux. I don't want to create a write-protected file

本文关键字:文件 我不想 创建 写保护 Linux      更新时间:2023-10-16

我在Linux中创建文件时遇到了一个问题,它会使我的文件受到写保护,我不知道它为什么会这样做。

void fileOperation::openFileWrite(char x, off_t s)
{
  int fd;
  char c[2] = {x};
  fd = open("/home/stud/txtFile", O_CREAT | O_WRONLY);  //open file
  if(fd == -1)
      cout << "can't open file" << endl;
  else
  {
      lseek(fd, s, SEEK_SET);//seek at first byte
      write(fd, (void*)&c, 2);//write to file
  }
  syncfs(fd);
  ::close(fd);
}

您必须使用具有写入权限集的附加参数(您的默认权限可能会取消写入权限)

 fd = open("/home/stud/txtFile", O_CREAT | O_WRONLY, 0666);//open file

0666是一个八进制数,即6中的每一个都对应于三个许可位

6 = rw
7 = rwx

您可能有一个限制性的umaskopen调用将简单地尝试创建模式为0666的文件,但用户的umask通常会删除其中的许多许可位。

相关文章: