std::filesystem::permissions
std::filesystem::permissions (파일 접근 권한 변경)
p가 귀결되는 파일의 접근 권한을 변경하는 함수예요. C++17부터 있어요.
출처: cppreference
본문
<filesystem> 헤더에 정의돼 있어요.
void permissions( const std::filesystem::path& p,
std::filesystem::perms prms,
std::filesystem::perm_options opts = perm_options::replace ); // (1) C++17
void permissions( const std::filesystem::path& p,
std::filesystem::perms prms,
std::error_code& ec ) noexcept; // (2) C++17
void permissions( const std::filesystem::path& p,
std::filesystem::perms prms,
std::filesystem::perm_options opts,
std::error_code& ec ); // (3) C++17
POSIX fchmodat처럼 p가 귀결되는 파일의 접근 권한을 변경해요. opts에 perm_options::nofollow가 설정되지 않으면 심볼릭 링크를 따라가요.
두 번째 시그니처는 opts가 perm_options::replace로 설정된 것처럼 동작해요.
효과는 prms와 opts에 따라 다음과 같아요.
opts가perm_options::replace면 파일 권한을 정확히prms & std::filesystem::perms::mask로 설정해요(prms의 모든 유효 비트가 적용됨).opts가perm_options::add면 파일 권한을 정확히status(p).permissions() | (prms & perms::mask)로 설정해요(prms에 설정됐지만 파일의 현재 권한에는 없는 유효 비트가 파일 권한에 추가됨).opts가perm_options::remove면 파일 권한을 정확히status(p).permissions() & ~(prms & perms::mask)로 설정해요(prms에 설정된 유효 비트가 파일 권한에서 제거됨).
매개변수
p— 권한을 변경할 경로prms— 설정할 권한opts— 권한 변경 옵션ec— 예외 없는 버전에서 오류 보고용 출력 매개변수
반환값
(없음)
예외
던지는 오버로드는 OS API 오류가 있으면 std::filesystem::filesystem_error를 던져요. 예외 없는 오버로드는 ec를 설정해요.