Linux通过函数调用获取磁盘使用情况

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#ifnndef WIN32
#include <sys/statfs.h>
#include <sys/vfs.h>
#endif

#define DEFAULT_DISK_PATH "/work"
typedef struct statfs DISK,*pDISK;

//获取包含磁盘空间信息的结构体
bool getDiskInfo(pDISK diskInfo, const char *path)
{
    char dpath[100]=DEFAULT_DISK_PATH;
    int flag=0;
    if(NULL!=path)
    {
        strcpy(dpath,path);
    } 

    if(-1==(flag=statfs(dpath,diskInfo)))//获取包含磁盘空间信息的结构体
    {
        return false;
    }
    return true;
}

//计算磁盘总空间,磁盘可用空间,计算结果的单位为Byte
int calDiskInfo(unsigned long long &diskTotal, unsigned long long &diskAvail)
{       DISK disk;   memset(&disk,0,sizeof(DISK));   getDiskInfo(&disk,DISK_PATH);   pDISK diskInfo = &disk;   unsigned long long blockSize=diskInfo->f_bsize;//每块包含字节大小   diskTotal=diskInfo->f_blocks*blockSize;//磁盘总空间    diskAvail=diskInfo->f_bavail*blockSize;//磁盘可用空间
}

原文地址:https://www.cnblogs.com/ingy0923/p/8732805.html

时间: 2024-10-28 16:04:30

Linux通过函数调用获取磁盘使用情况的相关文章

【linux】之查看磁盘占用情况

查看整个硬盘使用情况: 1.df  -h 2.du -bs xx 具体目录占用情况 3.查看当前目录大于100M的文件 find . -size +100M 原文地址:https://www.cnblogs.com/gyjx2016/p/9194096.html

PowerShell 获取磁盘使用情况

<#  .Name     get-diskinfo  .Example     PS C:\sicrping> .\diskinfo.ps1 -computername localhost         DeviceID FreeDB SizeDB         -------- ------ ------         C:            7     48         D:           37     63         E:          693    93

ES获取磁盘使用率情况

private void diskUage() { ClusterStateResponse stateResponse = client.admin().cluster().prepareState().get(); DiscoveryNodes nodes = stateResponse.getState().nodes(); NodesStatsResponse state = client.admin().cluster().prepareNodesStats().setFs(true)

Linux下java获取CPU、内存、磁盘IO、网络带宽使用率

一.CPU 使用proc文件系统,"proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口.用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数." 从/proc文件系统获取cpu使用情况:    cat /proc/stat 在Linux的内核中,有一个全 局变量:Jiffies. Jiffies代表时间.它的单位随硬件平台的不同而不同.系统里定义了一个常数HZ,代表每秒种最小时间间隔的数目.这样ji

linux下获取硬盘使用情况

1.前言 在嵌入式设备中,硬盘空间非常有限,在涉及到经常写日志的进程时候,需要考虑日志的大小和删除,不然很快就硬盘写满,导致日志程序崩溃.为了捕获硬盘写满的异常场景,我们需要在写日志过程中判断硬盘空间的使用情况,根据硬盘的使用情况,就可以判断是否写满了.如果将要写满了,就给出警告.这样就可以避免程序崩溃.首先看一下linux获取硬盘和目录大小的命令,最后总结一下statfs结构和函数. 2.df命令 Linux下可以用df命令获取硬盘的使用情况,通过man可以获取df命令的详细情况.df命令经常

linux查看磁盘使用情况

df -h linux查看磁盘使用情况,布布扣,bubuko.com

Linux 命令 - df: 报告磁盘空间的使用情况

df 命令列出指定的文件名所在的文件系统上可用磁盘空间的数量. 如果没有指定文件名,则显示当前所有使用中的文件系统.默认情况下,磁盘空间以 1K 为一块显示,如果设置了环境变量 POSIXLY_CORRECT,则采用 512 字节为一块显示. 命令格式 df [OPTION]... [FILE]... 命令参数 -a, --all 显示所有文件系统磁盘空间的占用情况 -B, --block-size=SIZE 指定块的大小 --total 额外显示总体的磁盘空间的占用情况 -h, --human

Linux监听磁盘使用情况

前阵子服务器磁盘写满了,导致项目出了很多奇怪的问题,比如文件上传不了(这个很好理解),还有登录时验证码无法加载(现在依旧不知道原因,项目的验证码图片是只在内存中生成的BufferedImage对象,不知道为什么和磁盘有关) 于是趁今天有空,就给服务器加上了监听磁盘使用情况的脚本,在到达一定使用率后,会发出邮件提醒,告知研发或者运维去即时处理,避免不必要的麻烦. 找了一篇挺详细的博文做参考: http://www.heminjie.com/system/linux/1923.html 主要是分以下

Linux查看磁盘使用情况命令

一.df -lh 命令 df 是来自于coreutils 软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置: [[email protected] ~]# df -l 文件系统                 容量       已用       可用    已用% 挂载点 /dev/sda3              4956316   3565088   1135396 76% / tmpfs                   241320