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가 귀결되는 파일의 접근 권한을 변경해요. optsperm_options::nofollow가 설정되지 않으면 심볼릭 링크를 따라가요.

두 번째 시그니처는 optsperm_options::replace로 설정된 것처럼 동작해요.

효과는 prmsopts에 따라 다음과 같아요.

  • optsperm_options::replace면 파일 권한을 정확히 prms & std::filesystem::perms::mask로 설정해요(prms의 모든 유효 비트가 적용됨).
  • optsperm_options::add면 파일 권한을 정확히 status(p).permissions() | (prms & perms::mask)로 설정해요(prms에 설정됐지만 파일의 현재 권한에는 없는 유효 비트가 파일 권한에 추가됨).
  • optsperm_options::remove면 파일 권한을 정확히 status(p).permissions() & ~(prms & perms::mask)로 설정해요(prms에 설정된 유효 비트가 파일 권한에서 제거됨).

매개변수

  • p — 권한을 변경할 경로
  • prms — 설정할 권한
  • opts — 권한 변경 옵션
  • ec — 예외 없는 버전에서 오류 보고용 출력 매개변수

반환값

(없음)

예외

던지는 오버로드는 OS API 오류가 있으면 std::filesystem::filesystem_error를 던져요. 예외 없는 오버로드는 ec를 설정해요.

더 알아보기 (Learn more)

cppreference