您的位置:首页 > 运维架构 > Linux

linux下用C语言获取硬盘/SD/FLASH存储容量及使用情况

2016-04-14 09:53 501 查看
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/vfs.h>

int main()
{
struct statfs diskInfo;
statfs("/", &diskInfo);
unsigned long long totalBlocks = diskInfo.f_bsize;
unsigned long long totalSize = totalBlocks * diskInfo.f_blocks;
size_t mbTotalsize = totalSize>>20;
unsigned long long freeDisk = diskInfo.f_bfree*totalBlocks;
size_t mbFreedisk = freeDisk>>20;
printf ("/  total=%dMB, free=%dMB\n", mbTotalsize, mbFreedisk);

statfs("/boot", &diskInfo);
totalBlocks = diskInfo.f_bsize;
totalSize = totalBlocks * diskInfo.f_blocks;
mbTotalsize = totalSize>>20;
freeDisk = diskInfo.f_bfree*totalBlocks;
mbFreedisk = freeDisk>>20;
printf ("/boot  total=%dMB, free=%dMB\n", mbTotalsize, mbFreedisk);
statfs("/dev/shm", &diskInfo);
totalBlocks = diskInfo.f_bsize;
totalSize = totalBlocks * diskInfo.f_blocks;
mbTotalsize = totalSize>>20;
freeDisk = diskInfo.f_bfree*totalBlocks;
mbFreedisk = freeDisk>>20;
printf ("/dev/shm  total=%dMB, free=%dMB\n", mbTotalsize, mbFreedisk);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: