Linux环境获取磁盘使用情况

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/simonyucsdy/article/details/79647746
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#ifndef 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;//磁盘可用空间
}

猜你喜欢

转载自blog.csdn.net/simonyucsdy/article/details/79647746
今日推荐