linux查询磁盘使用情况

df -h

 

 

 检测磁盘空间-Linux

#if defined(__linux__) || defined(__linux)
            struct statvfs st;
            if (::statvfs(_path.data(), &st) != 0) {
               do warning
            }
            auto freeSize = st.f_bsize * st.f_bfree;//空闲字节,还能输出总缓冲
         
            if (freeSize < N字节)
            {
                do warning
              
            }
#endif

#include <sys/statvfs.h>
int statvfs(const char *path, struct statvfs *buf);
int fstatvfs(int fd, struct statvfs *buf);

  • path 要获取磁盘信息的路径,只要是挂载到操作文件系统的路径即可。
  • fd 是已打开文件描述符,代表要获取磁盘信息的文件。
  • buf 指向一个statvfs结构,定义如下
struct statvfs {
    unsigned long  f_bsize;    /* Filesystem block size 文件系统块大小 */
    unsigned long  f_frsize;   /* Fragment size 碎片大小 */
    fsblkcnt_t     f_blocks;   /* Size of fs in f_frsize units  */
    fsblkcnt_t     f_bfree;    /* Number of free blocks 空闲块数量 */
    fsblkcnt_t     f_bavail;   /* Number of free blocks for
                                             unprivileged users 非特权用户的空闲块数量 */
    fsfilcnt_t     f_files;    /* Number of inodes i节点数量 */
    fsfilcnt_t     f_ffree;    /* Number of free inodes 空闲i节点数量 */
    fsfilcnt_t     f_favail;   /* Number of free inodes for
                                             unprivileged users 非特权用户的空闲i节点数量 */
    unsigned long  f_fsid;     /* Filesystem ID 文件系统id */
    unsigned long  f_flag;     /* Mount flags  挂载标识 */
    unsigned long  f_namemax;  /* Maximum filename length 最大文件名长度 */
};

 



posted on 2024-02-26 14:02  邗影  阅读(4)  评论(0编辑  收藏  举报

导航