在 Linux 中打开文件。我不想创建写保护文件
Open file in linux. I don't want to create a write-protected file
我在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
您可能有一个限制性的umask
。open
调用将简单地尝试创建模式为0666的文件,但用户的umask通常会删除其中的许多许可位。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 我不想导出的函数的未记录代码对象警告
- 类构造函数,它接受对不同对象的引用,我不想复制该对象
- 我不想要最后一个数字/值后面的逗号,如何删除它(c ++,循环)
- 如何将类型名传递给我不想模板化的类?
- 在Visual Studio中,我不想提交我的Debug文件夹,但它中有dll文件,如果我移动它,项目将无法编译
- 如何在 cocos2dx 中从 DrawNode 中删除色点,但我不想从父级中删除孩子。只需删除它的某些点
- 如果我只想要架构良好的工作区,但不一定是分开的编译,如何在C++中组织头/代码文件
- 我不想在使用 std::cin 后跳出换行符
- 如果我不想在 QAbstractItemView 中实现选择,我应该返回哪些值?
- 在 Linux 中打开文件。我不想创建写保护文件
- 如何在c++中声明变量我不想定义它,所以它不应该只消耗声明中的任何内存
- c++boost格式float-如何指定我不想要的.以及后面的零
- C++ 我不想要最后一个值后面的逗号
- 我想要一个接受指向成员的指针的模板函数,但我不想传递类类型或成员类型
- 我不想使用 std::copy...他的这个正确的循环替代方案?
- make_heap() 函数参数 - 如果我不想包含某些元素怎么办?
- C++ 重新启动我的刽子手游戏时,我的分数以及我不想要的玩家信息被删除
- 如果我不想让某人知道或更改硬编码值,宏是否比静态常量更安全?
- 我不想使用root作为全局