一、引言

在开发过程中,经常会碰到这样的情况,在往指定目录下拷贝文件时,需要考虑到磁盘空间的大小是否足够来决定什么时候暂停自己的程序

二、用的函数

<sys/statfs.h>

int statfs(const char *path, struct statfs *buf);

参考:http://man7.org/linux/man-pages/man2/statfs.2.html

三、示例

// 磁盘空间类型
enum EMDiskSizeType
{
TOTAL_SIZE, // 全部空间
FREE_SIZE // 剩余空间
}; //*****************************************************************************
//@Function : 统计指定路径所在磁盘的大小
//@in : strDir 指定路径
//@in : diskType 指定需要的磁盘大小类型,TOTAL_SIZE:总大小
//FREE_SIZE:剩余大小
//@Description : 返回指定路径所在磁盘的大小,单位MB
//*****************************************************************************
unsigned long long GetDiskSize(string strDir, EMDiskSizeType diskType)
{
unsigned long long llCount = ;
struct statfs diskInfo;
if (statfs(strDir.c_str(), &diskInfo) == -)
{
OutLog(SLL_ERROR, "getdisksize error, errno : %d, error : %s", errno, strerror(errno));
llCount = ;
}
else
{
switch(diskType)
{
case TOTAL_SIZE:
llCount = diskInfo.f_bsize * diskInfo.f_blocks;
llCount = llCount >> ;
break;
case FREE_SIZE:
llCount = diskInfo.f_bsize * diskInfo.f_bfree;
llCount = llCount >> ;
break;
default:
llCount = ;
break;
}
}
return llCount;
}

对该函数进行了一个简单的封装,实现的功能是:返回指定路径所在磁盘的指定类型大小(总大小、剩余大小)

最新文章

  1. 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
  2. 在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案
  3. android 入门 005(登录记住)
  4. (转)直接拿来用!最火的iOS开源项目(二)
  5. DIV CSS阴影
  6. ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践
  7. 关于WinForm/Web如何使用缓存Cach
  8. Java程序猿之从菜鸟到职场高手的必看
  9. iOS 加载本地的html文件
  10. Android查看联系人简单记录
  11. app内嵌vue h5,安卓和ios拦截H5点击事件
  12. jq动画设置图片抽奖(修改效果版)
  13. 1.Django学习
  14. 剑指offer 01:二维数组中的查找
  15. Redis详解(七)------ AOF 持久化
  16. 动态样式CSS
  17. 基础运动move.js
  18. react-router JS 控制路由跳转(转载)
  19. Linux基本命令学习与使用
  20. zabbix日常监控项TCP连接状态(六)

热门文章

  1. JS跳转页面的几种方法
  2. unity macro 分平台处理
  3. rsa实现js前台加密java后台解密
  4. Geeks - Check whether a given graph is Bipartite or not 二分图检查
  5. 【架构】Nginx如何设置X-Request-ID请求头,记录请求时间:毫秒?
  6. sonatype Nexus3 install on Kubernetes
  7. JBoss 系列十八:使用JGroups构建块RpcDispatcher构建群组通信应用
  8. mui ajax方法
  9. UTC时间格式转换
  10. Drupal启动阶段之一:配置