std::filesystem::perm_options
std::filesystem::perm_options (권한 변경 옵션)
std::filesystem::permissions() 함수의 동작을 제어하는 옵션을 나타내는 열거 타입이에요. C++17부터 있어요.
출처: cppreference
본문
<filesystem> 헤더에 정의돼 있어요.
enum class perm_options {
replace = /* unspecified */,
add = /* unspecified */,
remove = /* unspecified */,
nofollow = /* unspecified */
};
이 타입은 std::filesystem::permissions() 함수의 동작을 제어하는 사용 가능한 옵션을 나타내요. perm_options는 BitmaskType 요구사항을 만족해요.
멤버 상수
add, remove, replace 중 최대 하나만 있을 수 있어요. 그렇지 않으면 permissions 함수의 동작은 정의되지 않아요.
replace— 권한이permissions()에 전달된 인자로 완전히 교체돼요(기본 동작).add— 권한이 인자와 현재 권한의 비트 OR로 교체돼요.remove— 권한이 인자를 부정한 값과 현재 권한의 비트 AND로 교체돼요.nofollow— 권한이 파일이 귀결되는 대상이 아니라 심볼릭 링크 자체에 변경돼요.
예제
#include <filesystem>
#include <fstream>
#include <iostream>
void demo_perms(std::filesystem::perms p)
{
using std::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);
// ... owner_all, group/others 비트 표시
}
// fs::permissions("sandbox", fs::perms::owner_all | fs::perm_options::add) 등으로 사용