std::filesystem::space

std::filesystem::space (파일시스템 용량 정보 얻기)

경로 이름 p가 위치한 파일시스템에 관한 정보를 결정하는 함수예요. C++17부터 있어요.

출처: cppreference

본문

<filesystem> 헤더에 정의돼 있어요.

std::filesystem::space_info space( const std::filesystem::path& p );            // (1) C++17
std::filesystem::space_info space( const std::filesystem::path& p,
                                   std::error_code& ec ) noexcept;               // (2) C++17

POSIX statvfs처럼 경로 이름 p가 위치한 파일시스템에 관한 정보를 결정해요. POSIX struct statvfs의 멤버에서 다음과 같이 설정된 filesystem::space_info 타입 객체를 채워 돌려줘요.

  • space_info.capacityf_blocks * f_frsize처럼 설정돼요.
  • space_info.freef_bfree * f_frsize로 설정돼요.
  • space_info.availablef_bavail * f_frsize로 설정돼요.
  • 결정할 수 없는 멤버는 static_cast<std::uintmax_t>(-1)로 설정돼요.

예외 없는 버전은 오류 시 모든 멤버를 static_cast<std::uintmax_t>(-1)로 설정해요.

매개변수

  • p — 검사할 경로
  • ec — 예외 없는 버전에서 오류 보고용 출력 매개변수

반환값

파일시스템 정보(filesystem::space_info 객체)예요.

예외

noexcept로 표시되지 않은 오버로드는 메모리 할당이 실패하면 std::bad_alloc을 던질 수 있어요.

    1. OS API 오류가 있으면 p를 첫 경로 인자, OS 오류 코드를 오류 코드 인자로 삼아 std::filesystem::filesystem_error를 던져요.
    1. OS API 호출이 실패하면 ec에 OS 오류 코드를 설정하고, 오류가 없다면 ec.clear()를 실행해요.

더 알아보기 (Learn more)

cppreference