码迷,mamicode.com
首页 > 系统相关 > 详细

Linux通过函数调用获取磁盘使用情况

时间:2018-04-07 13:59:52      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:sig   default   bsp   unsigned   span   lin   ret   16px   include   

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#ifnndef WIN32
#include <sys/statfs.h>
#include <sys/vfs.h>
#endif

#define DEFAULT_DISK_PATH "/work"
typedef struct statfs DISK,*pDISK;

//获取包含磁盘空间信息的结构体
bool getDiskInfo(pDISK diskInfo, const char *path)
{ 
    char dpath[100]=DEFAULT_DISK_PATH; 
    int flag=0; 
    if(NULL!=path) 
    { 
        strcpy(dpath,path); 
    } 
    
    if(-1==(flag=statfs(dpath,diskInfo)))//获取包含磁盘空间信息的结构体 
    { 
        return false; 
    } 
    return true;
}

//计算磁盘总空间,磁盘可用空间,计算结果的单位为Byte
int calDiskInfo(unsigned long long &diskTotal, unsigned long long &diskAvail)
{     
  DISK disk;
  memset(
&disk,0,sizeof(DISK));

  getDiskInfo(&disk,DISK_PATH);
  pDISK diskInfo = &disk;
  unsigned long long blockSize=diskInfo->f_bsize;//每块包含字节大小
  diskTotal=diskInfo->f_blocks*blockSize;//磁盘总空间
  diskAvail=diskInfo->f_bavail*blockSize;//磁盘可用空间 }

 

Linux通过函数调用获取磁盘使用情况

标签:sig   default   bsp   unsigned   span   lin   ret   16px   include   

原文地址:https://www.cnblogs.com/ingy0923/p/8732805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!