std::filesystem::file_status::permissions

来自cppreference.com
 
 
 
 
std::filesystem::perms permissions()constnoexcept;
(1) (C++17 起)
void permissions(std::filesystem::perms perm )noexcept;
(2) (C++17 起)

访问文件权限信息。

1) 返回文件权限信息。
2) 设置文件权限为 perm

[编辑]参数

perm - 要设置的文件权限

[编辑]返回值

1) 文件权限信息。
2) (无)

[编辑]示例

#include <filesystem>#include <fstream>#include <iostream>   void demo_perms(std::filesystem::perms p){usingstd::filesystem::perms;auto show =[=](char op, perms perm){std::cout<<(perms::none==(perm & p)?'-': op);}; show('r', perms::owner_read); show('w', perms::owner_write); show('x', perms::owner_exec); show('r', perms::group_read); show('w', perms::group_write); show('x', perms::group_exec); show('r', perms::others_read); show('w', perms::others_write); show('x', perms::others_exec);std::cout<<'\n';}   int main(){std::ofstream("test.txt");// 创建文件   std::cout<<"创建文件的权限: "; demo_perms(std::filesystem::status("test.txt").permissions());   std::filesystem::permissions("test.txt", std::filesystem::perms::owner_all|std::filesystem::perms::group_all, std::filesystem::perm_options::add);   std::cout<<"添加 u+rwx 和 g+rwx 后: "; demo_perms(std::filesystem::status("test.txt").permissions());   std::filesystem::remove("test.txt");}

可能的输出:

创建文件的权限: rw-r--r-- 添加 u+rwx 和 g+rwx 后: rwxrwxr--
close