使用 C++ 设置目录的权限
Setting permissions to a directory using C++
我尝试创建新目录并设置其权限(最多使用 c++11 并且没有 boost(,以便用户、组和其他人可以列出其中的文件读取它们并写入新文件(Linux环境(。
#include <sys/stat.h>
#include <sys/types.h>
int main(void) {
const char* path = "/tmp/newDir";
mode_t process_mask = umask(0);
int syscall_status = mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO);
umask(process_mask);
return syscall_status;
}
此代码基于 mkdir(和 umask(的 man (2( 页面。 但是,创建的目录具有rwxr-xr-x
权限(没有组和其他目录的写入权限(。 我也尝试在目录上使用chmod系统调用,但它没有解决问题。stackoverflow 中的其他源处理了文件(而不是文件夹(,并且尝试在我的目录上应用文件方法
也不起作用。另外,我想避免从 stdlib 调用 system((,如果我找不到解决方案(安全考虑(,这是我将使用的最后一个选项。
>char* path = "/tmp/newDir";
除了语法错误之外,自 C++11 年以来格式不正确。在此之前,这将使用已弃用的转换。字符串文字在 C++ -> 中使用指向 const 的指针中是常量。
除此之外,假设使用POSIX系统,该程序是正确的。如果失败,则可以检查errno
以了解原因。如果您没有获得所有权限:检查父目录是否具有默认 ACL;这将覆盖 umask。
std::filesystem::create_directory
C++中创建目录的便携式方法,std::filesystem::permissions
设置权限的方法
相关文章:
- Termux权限被拒绝
- AWS Lambda C++运行时权限被拒绝
- 为什么 KMS drmModeSetCrtc() 在 X11 会话中运行时会失败并被拒绝权限?
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 在没有管理员权限的情况下连接到同一网络中的命名管道
- 为什么我在空指针错误(链表)中获取成员访问权限
- Q没有管理权限的 exe 无法启动维护工具
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- 如何使用Windows API C++更改已创建的文件夹/目录安全权限
- 如何修复无效的API密钥,IP或操作权限错误?
- 使用崇高文本 3 进行C++拒绝授予权限?
- 为什么"delete"操作员给我访问权限冲突
- 从根权限进程创建可访问的文件
- Android因为权限问题而杀死Qt应用程序
- 具有管理员权限的外壳执行不会结束
- 父级的子属性 - 访问权限
- 从C++获得对在python中创建的C++类的访问权限
- 安卓inotify_add_watch失败:权限被拒绝?
- 威纳派读取自定义文件或文件夹的所有访问权限
- 为什么当我使用 soci 连接到 postgresql 时,我没有足够的数据库权限?