std::filesystem::space() 返回的 space_info 包含 capacity(总容量)、free(非特权用户空闲字节数)和 available(进程实际可写入字节数),其中 available ≤ free,因后者扣除 root 保留空间、配额及文件系统开销。
它返回一个 std::filesystem::space_info 结构体,含三个 uintmax_t 成员:capacity(总字节数)、free(非特权用户可用空闲字节数)、available(当前进程实际可写入的字节数)。注意:free ≠ available——后者会扣除 root 保留空间、配额限制、甚至某些文件系统(如 ext4)的 reserved blocks。
必须传入一个**有效路径**(不一定是文件,目录也行),且该路径需位于目标文件系统根下;否则可能抛出 std::filesystem::filesystem_error。常见错误是传入空字符串、不存在路径或跨挂载点路径(比如在 Linux 上对 /proc 或 /sys 调用)。
std::filesystem::temp_directory_path() 或 std::filesystem::curr
ent_path() 作为安全起点"C:/" 可用,但注意结尾斜杠不能少("C:" 是相对路径,行为未定义)"/" 获取根文件系统,或 "/home" 查看 home 所在分区#include#include int main() { try { auto si = std::filesystem::space("/"); // ← 关键:必须是挂载点路径 std::cout << "Capacity: " << si.capacity << " bytes\n"; std::cout << "Free: " << si.free << " bytes\n"; std::cout << "Available:" << si.available << " bytes\n"; } catch (const std::filesystem::filesystem_error& e) { std::cerr << "Error: " << e.what() << "\n"; } }
差值主要来自三类限制:root reserved space(ext4 默认保留 5%)、user quotas(磁盘配额)、file system overhead(如 XFS 的 AG 管理块)。在容器或 CI 环境中尤其明显——Docker overlay2 层、GitHub Actions 的 runner 磁盘常设配额,导致 available 远低于 free。
quota -u $USER(Linux)或 repquota -a
tune2fs -l /dev/sda1 | grep "Reserved block count"
available,而非 free 或 capacity
Windows(NTFS)通常不区分 free 和 available,二者值相等;而 Linux(ext4/xfs/btrfs)严格区分。C++20 标准未强制要求实现差异,所以依赖 available == free 会出问题。
-std=c++20(GCC/Clang)或 /std:c++20(MSVC)Shlwapi.lib(已默认包含),但 MinGW-w64 某些旧版本需手动加 -lshlwapi
std::filesystem,建议先 #ifdef __cpp_lib_filesystem 检查free —— 写日志、解压包、生成缓存前,务必用 available 做容量预检,否则在配额受限的服务器上容易 runtime fail。
# linux
# git
# docker
# windows
# github
# 字节
# mac
# ai
# c++
# ios
# macos
# 解压
# count
# Filesystem
# 字符串
# 结构体
# 文件系统
# 不存在
# 而非
# 只看
# 则在
# 如在
# 也行
# 三类
# 抛出
# 不能少
相关文章:
如何在Golang中使用replace替换模块_指定本地或远程路径
如何选择网络建站服务器?高效建站必看指南
如何通过虚拟主机快速搭建个人网站?
如何用景安虚拟主机手机版绑定域名建站?
威客平台建站流程解析:高效搭建教程与设计优化方案
英语简历制作免费网站推荐,如何将简历翻译成英文?
建站之星下载版如何获取与安装?
如何用低价快速搭建高质量网站?
如何在Windows环境下新建FTP站点并设置权限?
如何访问已购建站主机并解决登录问题?
黑客入侵网站服务器的常见手法有哪些?
建站之星安装后界面空白如何解决?
c# 服务器GC和工作站GC的区别和设置
建站主机核心功能解析:服务器选择与网站搭建流程指南
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
想学网站制作怎么学,建立一个网站要花费多少?
如何在阿里云服务器自主搭建网站?
建站之星后台密码遗忘或太弱?如何重置与强化?
如何在腾讯云服务器上快速搭建个人网站?
如何在企业微信快速生成手机电脑官网?
如何选择建站程序?包含哪些必备功能与类型?
安徽网站建设与外贸建站服务专业定制方案
开封网站制作公司,网络用语开封是什么意思?
如何挑选优质建站一级代理提升网站排名?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
建站主机功能解析:服务器选择与快速搭建指南
建站之星微信建站一键生成小程序+多端营销系统
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
制作农业网站的软件,比较好的农业网站推荐一下?
如何快速搭建高效可靠的建站解决方案?
建站之星免费版是否永久可用?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
用v-html解决Vue.js渲染中html标签不被解析的问题
建站之星如何优化SEO以实现高效排名?
如何配置IIS站点权限与局域网访问?
如何通过VPS建站实现广告与增值服务盈利?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
建站主机服务器选型指南与性能优化方案解析
如何配置WinSCP新建站点的密钥验证步骤?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
网站制作公司,橙子建站是合法的吗?
如何通过二级域名建站提升品牌影响力?
广州商城建站系统开发成本与周期如何控制?
浅谈Javascript中的Label语句
如何设置并定期更换建站之星安全管理员密码?
建站之星安装路径如何正确选择及配置?
如何快速启动建站代理加盟业务?
在线制作视频的网站有哪些,电脑如何制作视频短片?
定制建站流程步骤详解:一站式方案设计与开发指南
*请认真填写需求信息,我们会在24小时内与您取得联系。