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

/*

* 获取硬盘大小;内存大小;usb大小

*/

#ifndef SYSINFOGET_H

#define SYSINFOGET_H

#include

//磁盘信息

#include

#include

#include

//内存信息

#include

#include

#include

//系统账号信息

#include

//文件信息

#include

#include

#include

class SysInfoGet

{

public:

SysInfoGet();

/**

* @brief getSysInfoInit 初始化数据

*/

void getSysInfoInit();

/**

* @brief getSysInfo 获取数据

*/

void getSysInfo();

double MBsize; //计算MB用

char *path;

char *pathUsb;

struct statfs diskInfo; //系统分区磁盘大小

struct sysinfo memInfo; //内存信息

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

struct dirent *ent;

public:

/**

* @brief totalDiskSize 磁盘大小

*/

double totalDiskSize;

/**

* @brief usedDiskSize 已用磁盘大小

*/

double usedDiskSize;

/**

* @brief totalMemSize 内存大小

*/

double totalMemSize;

/**

* @brief usedMemSize 已用内存

*/

double usedMemSize;

/**

* @brief totalUsbSize usb大小

*/

double totalUsbSize;

/**

* @brief usedUsbSize usb已用大小

*/

double usedUsbSize;

/**

* @brief usbExist usb是否存在

*/

bool usbExist;

};

#endif // SYSINFOGET_H

#include "sysinfoget.h"

SysInfoGet::SysInfoGet()

{

getSysInfoInit(); //初始化

//getSysInfo(); //获取

}

void SysInfoGet::getSysInfoInit(){

//初始化usb加载地址

struct passwd *pwd = new passwd;

pwd = getpwuid(getuid());

path = new char();

strcpy(path, "/media/");

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

//初始化

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

ent = new dirent;

//数据

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

totalDiskSize=;

usedDiskSize=;

totalMemSize=;

usedMemSize=;

totalUsbSize=;

usedUsbSize=;

usbExist=false;

}

void SysInfoGet::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()<

//qDebug()<

//---------内存信息测试----------------------------

//struct sysinfo memInfo;

sysinfo(&memInfo);

totalMemSize = (double)memInfo.totalram/MBsize;

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

//qDebug()<

//qDebug()<

//---------U盘信息测试------------------------------

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()<

// struct statfs diskInfo2;

// statfs(pathUsb, &diskInfo2);

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

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

// existFlag=1;

// //qDebug()<

// //qDebug()<

// }

// }

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

// if(existFlag == 1){

// usbExist = true;

// }

// else{

// usbExist = false;

// }

//此获取的是最新插入的那个usb(一个)

ent=readdir(pDir); //UUI1;UUI;..;.

//qDebug()<d_name;

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

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

{

usbExist = false;

totalUsbSize = ;

usedUsbSize = ;

}

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()<

//qDebug()<

}

}

closedir(pDir); //必须关闭

//qDebug()<

}

Linux下获取硬盘使用情况

Linux下获取硬盘使用情况[总结] 1.前言 在嵌入式设备中,硬盘空间非常有限,在涉及到经常写日志的进程时候,需要考虑日志的大小和删除,不然很快就硬盘写满,导致日志程序崩溃.为了捕获硬盘写满的异常场 ...

linux下获取硬盘使用情况&lbrack;总结&rsqb;

1.前言 在嵌入式设备中,硬盘空间非常有限,在涉及到经常写日志的进程时候,需要考虑日志的大小和删除,不然很快就硬盘写满,导致日志程序崩溃.为了捕获硬盘写满的异常场景,我们需要在写日志过程中判断硬盘空间 ...

C&num;在Linux下获取文件夹信息(所在磁盘总大小,使用空间,已用空间,使用率)

1.第一种使用shell命令实现: private DiskInfo LinuxGetFolderDiskInfo(string path) { DiskInfo disk = new DiskInf ...

linux下获取占用CPU资源最多的10个进程

linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...

&lbrack;转帖&rsqb;linux下CPU、内存、IO、网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具

linux下CPU.内存.IO.网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具 https://blog.51cto.com/hao360/1587165 linux_python关 ...

Linux 下增大tomcat内存

我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...

Linux下获取arm的交叉编译工具链

转载请注明文章:Linux下获取arm的交叉编译工具链 出处:多客博图 这里介绍,Linux下获取arm的交叉编译工具链,比如arm-linux-gnueabihf-gcc.arm-linux-gne ...

linux 下 取进程占用内存&lpar;MEM&rpar;最高的前10个进程

# linux 下 取进程占用 cpu 最高的前10个进程ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 取进程占用内存 ...

&lpar;转&rpar;Linux下tomcat JVM内存设置步骤

java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: Java heap space -------------- ...

随机推荐

IOS响应式编程框架ReactiveCocoa&lpar;RAC&rpar;使用示例

ReactiveCocoa是响应式编程(FRP)在iOS中的一个实现框架,它的开源地址为:https://github.com/ReactiveCocoa/ReactiveCocoa# :在网上看了几 ...

&lbrack;PHP&rsqb; php实现文件下载

1. 设置超链接的href属性 如果浏览器不能解析该文件,浏览器会自动下载.而如果文件是图片或者txt,会直接在浏览 ...

【整理】c&num; 调用windows API(user32&period;dll)

User32.dll提供了很多可供调用的接口,大致如下(转自http://blog.csdn.net/zhang399401/article/details/6978803) using System ...

gulp 基础运用

全局安装gulp $npm install --global gulp 作为项目的开发依赖安装 //--save-dev 开发依赖,储存在package.json的devDependencies中,如 ...

&lbrack;PHP&rsqb;MemCached高级缓存

Memcache Win32 的安装下载:Memcache Win32 [www.php100.com]   [www.jehiah.cz/projects/memcached-win32/] 1.解 ...

组合计数(polya计数):SGU 282 Isomorphism

因为论文的题解写得太好了,直接贴. #include #include #include using n ...

批处理文件:windows下关闭指定端口

@echo offsetlocal enabledelayedexpansionset /p port=please input port number:for /f "tokens=1-5 ...

JS的进阶技巧

前言 你真的了解JS吗,看完全篇,你可能对人生产生疑问. typeof typeof运算符,把类型信息当做字符串返回. //正则表达式 是个什么 ? typeof /s/ // object //nu ...

Spock - Document -04- Interaction Based Testing

Interaction Based Testing Peter Niederwieser, The Spock Framework TeamVersion 1.1 Interaction-based ...

vs编写x64内联汇编

参考自: https://www.cnblogs.com/achillis/p/5369658.html 先转过来, 等实践过了再做相应的修改, hehe 编写涉及系统特性的一些底层程序,特别是She ...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值