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

Posted ingy0923

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux通过函数调用获取磁盘使用情况相关的知识,希望对你有一定的参考价值。

#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通过函数调用获取磁盘使用情况的主要内容,如果未能解决你的问题,请参考以下文章

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

go语言检查磁盘分区使用情况

Linux磁盘管理的Linux管理命令

10 Linux环境变量

linux系统信息获取和上报