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

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

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.dtcms.com/a/344398.html

相关文章:

  • 【Python-Day 40】告别内存溢出!Python 生成器 (Generator) 的原理与实战
  • 网络抓包介绍
  • Conmi的正确答案——Ubuntu24.04禁用任何休眠
  • CTF-RSA-openssl-pem格式的key
  • C++中不加{}导致的BUG
  • 笔记本怎么才能更快散热?
  • vsCode或Cursor 使用remote-ssh插件链接远程终端
  • Flask数据库迁移实战指南
  • Flask电影投票系统全解析
  • 近期https接口的联调小记
  • STM32——SPI通信+W25Q64
  • 一体化伺服电机在特种机器人(炉管爬行器)中的应用案例
  • ShimetaPi M4-R1 :OpenHarmony 开发板解析
  • Mysql事务特性及原理
  • 网络安全基础知识
  • 异步开发的三种实现方式
  • 香港券商櫃台系統跨境金融研究
  • CTFshow系列——命令执行web45-48
  • 优选算法1:双指针
  • 如何在Vscode中配置MCP服务?(包含实例:使用Github Copilot + 高德MCP查询旅游攻略)
  • 聚焦AI与绿色双碳 金士顿亮相2025深圳国际电子展
  • 【链表 - LeetCode】2. 两数相加
  • 深度学习——神经网络
  • 深度学习赋能光纤非线性光学:Nature Comms揭示噪声驱动系统的智能预测框架
  • 【openGLES】着色器语言(GLSL)
  • CAM可视化卷积神经网络
  • 开源 python 应用 开发(十一)短语音转文本
  • 安卓手机格式转换,支持PDF转Word、PDF转Excel、PDF转PPT、PDT转图片
  • 基于ERNIE 4.5的多智能体协作的自动化视频舆情分析报告生成器
  • UE5基本打光(新手向)