std::filesystem::file_size

std::filesystem::file_size (파일 크기 얻기)

주어진 경로의 파일 크기를 바이트 단위로 돌려주는 함수예요. C++17부터 있어요.

출처: cppreference

본문

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

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

p가 존재하지 않으면 오류를 보고해요. 일반 파일 p에 대해서는 POSIX stat으로 얻은 구조체의 st_size 멤버를 읽은 것처럼 크기를 돌려줘요(심볼릭 링크는 따라가요). 디렉터리(일반 파일·심볼릭 링크가 아닌 다른 파일 포함)의 크기를 구하려는 결과는 구현 정의예요. 예외 없는 버전은 오류 시 static_cast<std::uintmax_t>(-1)을 돌려줘요.

매개변수

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

반환값

파일의 크기(바이트)예요.

예외

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

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

더 알아보기 (Learn more)

cppreference