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。