当前位置: 首页 > ai >正文

文件系统层面的可用块数量可用空间和比例

statfs、fstatfs - 获取文件系统统计信息

#include <stdio.h>
#include <sys/vfs.h>  // 包含statfs所需的头文件
#include <errno.h>
#include <string.h>int main(int argc, char *argv[])
{struct statfs fs_info;const char *path;double available_ratio, used_ratio;unsigned long long total_space, available_space, used_space;// 如果没有提供路径参数,使用当前目录if (argc < 2) {path = ".";} else {path = argv[1];}// 调用statfs获取文件系统信息if (statfs(path, &fs_info) == -1)		{fprintf(stderr, "获取文件系统信息失败: %s\n", strerror(errno));return 1;}if(statfs(path,&fs_info) == -1){fprintf(stderr, "获取文件系统信息失败: %s\n", strerror(errno));return 1;}total_space = (unsigned long long)fs_info.f_blocks * fs_info.f_bsize;available_space = (unsigned long long)fs_info.f_bavail * fs_info.f_bsize;used_space = total_space - (unsigned long long)fs_info.f_bfree * fs_info.f_bsize;available_ratio = (double)available_space / total_space * 100;used_ratio = (double)used_space / total_space * 100;// 打印文件系统信息printf("文件系统信息 - 路径: %s\n", path);printf("----------------------------------------\n");printf("文件系统类型: %ld\n", fs_info.f_type);printf("最佳I/O块大小: %ld 字节\n", fs_info.f_bsize);printf("总块数: %ld\n", fs_info.f_blocks);printf("空闲块数: %ld\n", fs_info.f_bfree);printf("可用块数(非root): %ld\n", fs_info.f_bavail);printf("总容量: %.2f GB\n", (double)fs_info.f_blocks * fs_info.f_bsize / (1024 * 1024 * 1024));printf("可用容量: %.2f GB\n", (double)fs_info.f_bavail * fs_info.f_bsize / (1024 * 1024 * 1024));printf("最大文件名长度: %ld 字符\n", fs_info.f_namelen);printf("使用空间比例%.2f%%\n",used_ratio);printf(" 可用空间比例%.2f%%\n", available_ratio);printf(" 空闲比例%.2f%%\n", (double)fs_info.f_bfree/fs_info.f_blocks*100);return 0;
}

http://www.xdnf.cn/news/18434.html

相关文章:

  • AI重塑职业教育:个性化学习计划提效率、VR实操模拟强技能,对接就业新路径
  • 拿到手一个前端项目,应该如何启动
  • 开发避坑指南(34):mysql深度分页查询优化方案
  • Ubuntu解决makefile交叉编译的问题
  • Android Jetpack | Hilt
  • 机器人爆发、汽车换代,速腾聚创开始讲新故事
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析八
  • 【数据结构】选择排序:直接选择与堆排序详解
  • 前端项目打包+自动压缩打包文件+自动上传部署远程服务器
  • 为什么需要关注Flink并行度?
  • 【C#】观察者模式 + UI 线程调度、委托讲解
  • 大学校园安消一体化平台——多警合一实现智能联动与网格化管理
  • Redis 678
  • Hyperledger Fabric官方中文教程-改进笔记(十四)-向通道中添加组织
  • open webui源码分析7—过滤器
  • 获取后台返回的错误码
  • Linux822 shell:expect 批量
  • 车辆方向数据集 - 物体检测
  • 作品集PDF又大又卡?我用InDesign+Acrobat AI构建轻量化交互式文档工作流
  • 【LeetCode每日一题】238. 除自身以外数组的乘积
  • 【链表 - LeetCode】2. 两数相加
  • 服务器与客户端
  • 零基础从头教学Linux(Day 18)
  • 北斗导航 | 基于MCMC粒子滤波的接收机自主完好性监测(RAIM)算法(附matlab代码)
  • 【Linux我做主】细说进程地址空间
  • Spring Boot全局异常捕获指南
  • Jenkins自动化部署服务到Kubernetes环境
  • Java 面试题训练助手 Web 版本
  • JavaScript 操作 DOM
  • php apache无法接收到Authorization header