#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;//磁盘可用空间 }
原文地址:https://www.cnblogs.com/ingy0923/p/8732805.html
时间: 2024-10-28 16:04:30