zoukankan      html  css  js  c++  java
  • linux C代码获取磁盘大小

    [root@localhost ~]# df -h

    文件系统              容量  已用 可用 已用% 挂载点
    /dev/mapper/VolGroup00-LogVol00
                           14G   11G  2.5G  81% /
    /dev/sda1          99M   21M   73M  23% /boot
    tmpfs                 252M     0  252M   0% /dev/shm

    如下为C代码的实现

    #include <sys/vfs.h>

    [cpp] view plain copy
     
    1. struct statfs diskInfo;  
    2. statfs("/", &diskInfo);  
    3. unsigned long long totalBlocks = diskInfo.f_bsize;  
    4. unsigned long long totalSize = totalBlocks * diskInfo.f_blocks;  
    5. size_t mbTotalsize = totalSize>>20;  
    6. unsigned long long freeDisk = diskInfo.f_bfree*totalBlocks;  
    7. size_t mbFreedisk = freeDisk>>20;  
    8. printf ("/  total=%dMB, free=%dMB ", mbTotalsize, mbFreedisk);  
    9.   
    10. statfs("/boot", &diskInfo);  
    11. totalBlocks = diskInfo.f_bsize;  
    12. totalSize = totalBlocks * diskInfo.f_blocks;  
    13. mbTotalsize = totalSize>>20;  
    14. freeDisk = diskInfo.f_bfree*totalBlocks;  
    15. mbFreedisk = freeDisk>>20;  
    16. printf ("/boot  total=%dMB, free=%dMB ", mbTotalsize, mbFreedisk);  
    17.   
    18. statfs("/dev/shm", &diskInfo);  
    19. totalBlocks = diskInfo.f_bsize;  
    20. totalSize = totalBlocks * diskInfo.f_blocks;  
    21. mbTotalsize = totalSize>>20;  
    22. freeDisk = diskInfo.f_bfree*totalBlocks;  
    23. mbFreedisk = freeDisk>>20;  
    24. printf ("/dev/shm  total=%dMB, free=%dMB ", mbTotalsize, mbFreedisk);  


    执行输出如下:

    /                   total=13763MB, free=3246MB
    /boot           total=98MB,        free=78MB
    /dev/shm   total=251MB,      free=251MB

  • 相关阅读:
    2018年国内就业薪资高的7大编程语言排行
    前端css实现最基本的时间轴
    前端css实现最基本的时间轴
    用Canvas画一个刮刮乐
    用Canvas画一个刮刮乐
    「干货」从菜鸟到大神,前端学习书籍推荐
    洛谷P3379 【模板】最近公共祖先(LCA)
    洛谷 P1359 租用游艇
    位运算...
    洛谷P2782 友好城市
  • 原文地址:https://www.cnblogs.com/poonpan/p/8628704.html
Copyright © 2011-2022 走看看