FreeBSD Manual Pages
std::filesy...perm_options(3) C++ Standard Libarystd::filesy...perm_options(3) NAME std::filesystem::perm_options - std::filesystem::perm_options Synopsis Defined in header <filesystem> enum class perm_options { replace = /* unspecified */, add = /* unspecified */, (since C++17) remove = /* unspecified */, nofollow = /* unspecified */ }; This type represents available options that control the behavior of the function std::filesystem::permissions(). perm_options satisfies the requirements of BitmaskType (which means the bitwise operators operator&, operator|, operator^, operator~, operator&=, operator|=, and operator^= are defined for this type) Member constants At most one of add, remove, replace may be present, otherwise the behavior of the permissions function is undefined. Member constant Meaning replace Permissions will be completely replaced by the argu- ment to permissions() (default behavior) add permissions will be replaced by the bitwise OR of the argument and the current permissions remove permissions will be replaced by the bitwise AND of the negated argument and current permissions nofollow permissions will be changed on the symlink itself, rather than on the file it resolves to Example // Run this code #include <fstream> #include <bitset> #include <iostream> #include <filesystem> namespace fs = std::filesystem; void demo_perms(fs::perms p) { std::cout << ((p & fs::perms::owner_read) != fs::perms::none ? "r" : "-") << ((p & fs::perms::owner_write) != fs::perms::none ? "w" : "-") << ((p & fs::perms::owner_exec) != fs::perms::none ? "x" : "-") << ((p & fs::perms::group_read) != fs::perms::none ? "r" : "-") << ((p & fs::perms::group_write) != fs::perms::none ? "w" : "-") << ((p & fs::perms::group_exec) != fs::perms::none ? "x" : "-") << ((p & fs::perms::others_read) != fs::perms::none ? "r" : "-") << ((p & fs::perms::others_write) != fs::perms::none ? "w" : "-") << ((p & fs::perms::others_exec) != fs::perms::none ? "x" : "-") << '\n'; } int main() { std::ofstream("test.txt"); // create file std::cout << "Created file with permissions: "; demo_perms(fs::status("test.txt").permissions()); fs::permissions("test.txt", fs::perms::owner_all | fs::perms::group_all, fs::perm_options::add); std::cout << "After adding u+rwx and g+rwx: "; demo_perms(fs::status("test.txt").permissions()); fs::remove("test.txt"); } Possible output: Created file with permissions: rw-r--r-- After adding u+rwx and g+wrx: rwxrwxr-- See also permissions modifies file access permissions (C++17) (function) perms identifies file system permissions (C++17) (enum) http://cppreference.com 2022.07.31 std::filesy...perm_options(3)
NAME | Synopsis | Member constants | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::filesystem::perm_options&sektion=3&manpath=FreeBSD+Ports+15.0>
