std::experimental::filesystem::space
來自 cppreference.com
< cpp | experimental | fs
定義於標頭檔案 <experimental/filesystem> |
||
space_info space( const path& p ); space_info space( const path& p, error_code& ec ) noexcept; |
(filesystem TS) | |
確定路徑名 p 所在的檔案系統資訊,如同 POSIX statvfs
。
填充並返回一個 space_info
型別的物件,其成員根據 POSIX struct statvfs
的成員設定如下:
- space_info.capacity 的設定如同 f_blocks * f_frsize。
- space_info.free 被設定為 f_bfree * f_frsize。
- space_info.available 被設定為 f_bavail * f_frsize。
- 任何無法確定的成員都設定為 static_cast<std::uintmax_t>(-1)。
無丟擲異常的過載在錯誤時將所有成員設定為 static_cast<std::uintmax_t>(-1)。
目錄 |
[編輯] 引數
p | - | 要檢查的路徑 |
ec | - | 非丟擲過載中用於錯誤報告的出參 |
[編輯] 返回值
檔案系統資訊(一個 space_info
物件)。
[編輯] 異常
不帶 error_code& 引數的過載在底層 OS API 錯誤時丟擲 filesystem_error,構造時將 p 作為第一個引數,將 OS 錯誤碼作為錯誤碼引數。std::bad_alloc 可能在記憶體分配失敗時丟擲。帶 error_code& 引數的過載在 OS API 呼叫失敗時將其設定為 OS API 錯誤碼,並在沒有錯誤發生時執行 ec.clear()。此過載具有noexcept 規範:
noexcept
[編輯] 注意
space_info.available 可能小於 space_info.free。
[編輯] 示例
執行此程式碼
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::space_info devi = fs::space("/dev/null"); fs::space_info tmpi = fs::space("/tmp"); std::cout << " Capacity Free Available\n" << "/dev: " << devi.capacity << " " << devi.free << " " << devi.available << '\n' << "/tmp: " << tmpi.capacity << ' ' << tmpi.free << ' ' << tmpi.available << '\n'; }
可能的輸出
Capacity Free Available /dev: 4175114240 4175110144 4175110144 /tmp: 420651237376 411962273792 390570749952
[編輯] 另請參閱
關於檔案系統空閒和可用空間的資訊 (類) |