在线文档教程
C++
文件系统 | Filesystem

std::filesystem::space

STD::文件系统::space

Defined in header
std::filesystem::space_info space(const std::filesystem::path& p) std::filesystem::space_info space(const std::filesystem::path& p, std::error_code& ec)(since C++17)

确定路径名所在的文件系统的信息。p被定位,好像是由POSIX找到的。statvfs...

填充并返回类型为空间[医]信息,由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<uintmax_t>(-1)

非抛出重载将所有成员设置为static_cast<uintmax_t>(-1)关于错误。

参数

p-path to examine
ec-out-parameter for error reporting in the non-throwing overload

返回值

文件系统信息%28a空间[医]信息对象%29。

例外

不占用std::error_code&参数抛文件系统[医]误差关于基础OS API错误,使用p作为第一个参数和操作系统错误代码作为错误代码参数。std::bad_alloc如果内存分配失败,则可能引发。过载std::error_code&参数,如果OSAPI调用失败,则将其设置为OSAPI错误代码,并执行ec.clear()如果没有错误发生。这个过载

noexcept规格:

noexcept

注记

空间[医]信息。可用空间可能小于[医]免费信息。

二次

#include <iostream> #include <filesystem> namespace fs = std::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

二次

另见

space_info (C++17)information about free and available space on the filesystem (class)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/filesystem/space