u盘linux需要多大内存,linux下获取硬盘、内存、U盘大小及使用大小

/** 获取硬盘大小;内存大小;usb大小*/#ifndef SYSINFOGET_H#define SYSINFOGET_H#include

//磁盘信息

#include #include#include

//内存信息

#include #include#include

//系统账号信息

#include

//文件信息

#include #include#include

classSysInfoGet

{public:

SysInfoGet();/**

* @brief getSysInfoInit 初始化数据*/

voidgetSysInfoInit();/**

* @brief getSysInfo 获取数据*/

voidgetSysInfo();double MBsize; //计算MB用

char *path;char *pathUsb;struct statfs diskInfo; //系统分区磁盘大小

struct sysinfo memInfo; //内存信息

struct statfs diskInfo2; //usb分区磁盘大小

struct dirent *ent;public:/**

* @brief totalDiskSize 磁盘大小*/

doubletotalDiskSize;/**

* @brief usedDiskSize 已用磁盘大小*/

doubleusedDiskSize;/**

* @brief totalMemSize 内存大小*/

doubletotalMemSize;/**

* @brief usedMemSize 已用内存*/

doubleusedMemSize;/**

* @brief totalUsbSize usb大小*/

doubletotalUsbSize;/**

* @brief usedUsbSize usb已用大小*/

doubleusedUsbSize;/**

* @brief usbExist usb是否存在*/

boolusbExist;

};#endif //SYSINFOGET_H#include"sysinfoget.h"SysInfoGet::SysInfoGet()

{

getSysInfoInit();//初始化//getSysInfo();//获取

}voidSysInfoGet::getSysInfoInit(){//初始化usb加载地址

struct passwd *pwd = newpasswd;

pwd=getpwuid(getuid());

path= new char(15);

strcpy(path,"/media/");

strcat(path, pwd->pw_name); //./media/root//初始化

pathUsb = new char(25); //长度够不够?

ent= newdirent;//数据

MBsize = 1024.0*1024.0; //最终结果只留下两位

totalDiskSize=0;

usedDiskSize=0;

totalMemSize=0;

usedMemSize=0;

totalUsbSize=0;

usedUsbSize=0;

usbExist=false;

}voidSysInfoGet::getSysInfo()

{//--------磁盘信息测试---------------------------//struct statfs diskInfo;

statfs("/", &diskInfo);

totalDiskSize= (double)(diskInfo.f_bsize*diskInfo.f_blocks)/MBsize;

usedDiskSize= (double)(diskInfo.f_bsize*diskInfo.f_blocks-diskInfo.f_bsize*diskInfo.f_bfree)/MBsize;//qDebug()<

sysinfo(&memInfo);

totalMemSize= (double)memInfo.totalram/MBsize;

usedMemSize= (double)(memInfo.totalram-memInfo.freeram)/MBsize;//qDebug()<

DIR *pDir =opendir(path);//int existFlag;//existFlag = 0;//while(NULL != (ent=readdir(pDir)) )//{//if(ent->d_type==4)//if(ent->d_type & DT_DIR)//{//if(strcmp(ent->d_name,".")==0 || strcmp(ent->d_name,"..")==0) continue;// //qDebug()<d_name;//u盘文件夹名称//strcpy(pathUsb, path);//strcat(pathUsb, "/");//strcat(pathUsb, ent->d_name);// //qDebug()<

ent=readdir(pDir); //UUI1;UUI;..;.//qDebug()<d_name;

if(ent->d_type==4){ //属于文件夹

if(strcmp(ent->d_name,".")==0 || strcmp(ent->d_name,"..")==0)

{

usbExist= false;

totalUsbSize= 0;

usedUsbSize= 0;

}else{

strcpy(pathUsb, path);

strcat(pathUsb,"/");

strcat(pathUsb, ent->d_name); //获取u盘地址//struct statfs diskInfo2;

statfs(pathUsb, &diskInfo2);

usbExist= true;

totalUsbSize= (double)(diskInfo2.f_bsize*diskInfo2.f_blocks)/MBsize;

usedUsbSize= (double)(diskInfo2.f_bsize*diskInfo2.f_blocks-diskInfo2.f_bsize*diskInfo2.f_bfree)/MBsize;//qDebug()<

}

}

closedir(pDir);//必须关闭//qDebug()<

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值