CPP 是否提供了一种方法来确定哪些文件系统权限适用?
Does CPP provide a way to figure out which of the filesystem perms apply?
(这是针对 C++17 等较新标准的特定查询)
文件系统headers现在提供了一种获取路径权限的方法,以标准的 3 perms 方式(所有者、组、其他)格式化。
如何确定其中哪些是相关权限? (正在执行的程序是所有者、具有访问权限的组的成员,还是两者都不是的成员,因此 "other")
我正在寻找一种本地跨平台的方式来实现它,如果这还不可能,请告诉我。目的是避免在我自己的代码中手动将此职责分配给显式 unix 命令或 windows 库函数,如果我可以避免的话。
std::filesystem::status
returns 文件的状态和权限由 stat
给出,但不提供用户和组信息,因此无法知道哪些位与当前流程相关。
这里的要点是标准库旨在提供跨不同目标平台(Windows、Linux、Mac、...)的可移植行为,这绝对是对于用户和组来说,这样做并不容易。正如@Davis Herring 在评论中所说,即使是文件权限也几乎无法移植。
标准库基于 boost:filesystem
,为此我们有 the same problem。
(这是针对 C++17 等较新标准的特定查询)
文件系统headers现在提供了一种获取路径权限的方法,以标准的 3 perms 方式(所有者、组、其他)格式化。
如何确定其中哪些是相关权限? (正在执行的程序是所有者、具有访问权限的组的成员,还是两者都不是的成员,因此 "other")
我正在寻找一种本地跨平台的方式来实现它,如果这还不可能,请告诉我。目的是避免在我自己的代码中手动将此职责分配给显式 unix 命令或 windows 库函数,如果我可以避免的话。
std::filesystem::status
returns 文件的状态和权限由 stat
给出,但不提供用户和组信息,因此无法知道哪些位与当前流程相关。
这里的要点是标准库旨在提供跨不同目标平台(Windows、Linux、Mac、...)的可移植行为,这绝对是对于用户和组来说,这样做并不容易。正如@Davis Herring 在评论中所说,即使是文件权限也几乎无法移植。
标准库基于 boost:filesystem
,为此我们有 the same problem。