首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::filesystem::space

Defined in header <filesystem>

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

注记

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

二次

代码语言:javascript
复制
#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';
}

二次

可能的产出:

二次

代码语言:javascript
复制
.         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)

代码语言:txt
复制
 © cppreference.com

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

扫码关注腾讯云开发者

领取腾讯云代金券