简易 statvfs() 获取系统磁盘信息

简易 statvfs() 获取系统磁盘信息

  #tip:    Linux 系统获取磁盘信息!

             直接复制粘贴就可以测试了!觉得可以的话,给个点赞,分享出更多好东西的动力!

 

/*
 ============================================================================
 Name        : statvfs.c
 Author      : ning
 Version     : 1.0.0
 Copyright   : 请勿转载
 Description : 获取系统信息
 ============================================================================
 */
 
#include <stdio.h>
#include <sys/statvfs.h>
 
#define SYSTEM_BITS  64
#define PATH "/"
#define KB 1024
#define MB 1024*1024
#define GB  1024*1024*1024
 
int main(void)
{
	int state;
	struct statvfs vfs;
	fsblkcnt_t block_size = 0;
	fsblkcnt_t block_count = 0;
	fsblkcnt_t total_size;
	fsblkcnt_t free_size;
	fsblkcnt_t used_size;
	fsblkcnt_t avail_size;
        /*读取根目录,就是整个系统的大小*/
	state = statvfs(PATH,&vfs);   /*设置路径,查看不同文件目录的大小*/
	if(state < 0){
		printf("read statvfs error!!!\n");
	}
 
	block_size = vfs.f_bsize; /*获取一个block的大小*/
    /*获取总容量*/
	total_size = vfs.f_blocks * block_size;
	 /*获取可用容量*/
	free_size = vfs.f_bfree * block_size;
	 /*获取使用容量*/
	used_size = (vfs.f_blocks - vfs.f_bavail) * block_size;
	 /*获取有效容量*/
	avail_size = vfs.f_bavail * block_size;
 
	printf(" total_size   = %0.2lf  GB\n",(double)total_size / (GB) );
	printf(" free_size   = %0.2lf  GB\n",(double)free_size / (GB) );
	printf(" used_size  = %0.2lf  GB\n",(double)used_size / (GB) );
	printf(" avail_size  = %0.2lf  GB\n",(double)avail_size / (GB) );
 
	return 0;
}
 
 
 
 
 
 
 
 
 
 
 
 

转载:简易 statvfs() 获取系统磁盘信息_Hack-Ning的博客-CSDN博客_statvfs

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值