分类:
2010-04-29 22:46:40
// 计算硬盘使用百分比
int Df( const char* pcDevice, struct HddState* pstHdd )
{
if( NULL == pcDevice || NULL == pstHdd )
return ERROR_NULL;
struct statfs stVfs;
memset( &stVfs, 0, sizeof( stVfs ) );
if( -1 == statfs( pcDevice, &stVfs ) )
return ERROR_INVALID;
// stVfs.f_block == 系统当前有多少个块
// stVfs.f_bavail == 系统当前可用的块为多少( 不包括超级块 )
// stVfs.f_bsize == 系统当前使用的块为多少字节
// 注: 必须先算除,再算乘,否则超界
pstHdd->lTotal = stVfs.f_blocks * ( stVfs.f_bsize / 1024 );
pstHdd->lAvail = stVfs.f_bavail * ( stVfs.f_bsize / 1024 );
return SUCCESS;
}---------------------------
使用statfs函数或者df命令