关闭

linux 系统信息查询,内存,闪存,cpu个数查询

标签: linux 内存闪存cpu个数查询
197人阅读 评论(0) 收藏 举报
分类:
</pre><pre name="code" class="plain">

#include <stdio.h>
#include <unistd.h>
#include <sys/utsname.h>
#include <sys/sysinfo.h>
#include <sys/statfs.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
</pre><pre name="code" class="cpp">//获取系统名称,类似shell命令  uname -a
string getUname()
{
    struct utsname u;
    uname(&u);
    char buf[256] = {0};
    sprintf(buf, "%s %s %s %s %s", u.sysname, u.nodename, u.release, u.version, u.machine);
    return string(buf);
}
//获取系统cpu个数
unsigned int getCpuCoreNumber()
{
    return sysconf(_SC_NPROCESSORS_CONF);
}
//获取使用的cpu个数
unsigned int getCpuCoreUseage()
{
    return sysconf(_SC_NPROCESSORS_ONLN);
}
unsigned int getPhyTotalPages()
{
    return sysconf(_SC_PHYS_PAGES);
}
unsigned int getPhyAvailablePages()
{
    return sysconf(_SC_AVPHYS_PAGES);
}
//获取系统名字
string getHostname()
{
    char host[32] = {0};
    gethostname(host, sizeof(host));
    return string(host);
}
//获取内存大小
string getRamTotalSize()
{
    struct sysinfo s_info;
    sysinfo(&s_info);
    char buf[100] = {0};
    sprintf(buf,"%luMB", s_info.totalram/1024/1024);
    return string(buf);
}
<pre name="code" class="cpp">//获取剩余内存大小

string getRamAvailSize()
{
    struct sysinfo s_info;
    sysinfo(&s_info);
    char buf[100] = {0};
    sprintf(buf,"%luMB", s_info.freeram/1024/1024);
    return string(buf);
}
//获取根目录挂载空间大小
string getRomTotalSize()
{
    struct statfs diskInof;
    statfs("/", &diskInof);
    unsigned long long blocksize = diskInof.f_bsize;
    unsigned long long totalsize = blocksize * diskInof.f_blocks;


    char buf[100] = {0};
    sprintf(buf, "%lluMB", totalsize / 1000 / 1000 );
    return string(buf);
}
//获取根目录可用空间
string getRomAvailSize()
{
    struct statfs diskInof;
    if (statfs("/", &diskInof) != 0)
    {
        return string("");
    }
    unsigned long long blocksize = diskInof.f_bsize;
    unsigned long long freeDisk = diskInof.f_bfree * blocksize;
    unsigned long long availableDisk = blocksize * diskInof.f_bavail;


    char buf[100] = {0};
    sprintf(buf, "%lluMB", availableDisk / 1000 / 1000 );
    return string(buf);
}
//获取sdcard 挂载空间大小,路径根据自己挂载目录指定
string getSDcardTotalSize()
{
    struct statfs diskInof;
    if (statfs("/media/mmcblk1", &diskInof) != 0)
    {
        return string("0MB");
    }
    unsigned long long blocksize = diskInof.f_bsize;
    unsigned long long totalsize = blocksize * diskInof.f_blocks;


    char buf[100] = {0};
    sprintf(buf, "%lluMB", totalsize / 1000 / 1000 );
    return string(buf);
}
//获取SD卡可用空间大小
string getSDcardAvailSize()
{
    struct statfs diskInof;
    if (statfs("/media/mmcblk1", &diskInof) != 0)
    {
        return string("0MB");
    }
    unsigned long long blocksize = diskInof.f_bsize;
    unsigned long long freeDisk = diskInof.f_bfree * blocksize;
    unsigned long long availableDisk = blocksize * diskInof.f_bavail;


    char buf[100] = {0};
    sprintf(buf, "%lluMB", availableDisk / 1000 / 1000 );
    return string(buf);
}

   
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

linux下查看cpu,内存,硬盘等硬件信息的方法

说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。 原文地址: ...
  • WJshanggan
  • WJshanggan
  • 2015-05-06 19:31
  • 9410

ps 查看linux系统内存及cpu信息

RSS -- 进程本身的内存占用   VSZ -- 算上共享库的总占用   ps -eo pid,user,comm,args,%cpu,%mem,rss,vsz,sz   查看内存、CPU ...
  • shangzhiliang_2008
  • shangzhiliang_2008
  • 2013-01-16 16:33
  • 9590

Linux系统中使用读取cpu、内存、磁盘信息的oid

SNMP指的是简单网路管理协议(Simple Network Management Protocol),它主要包含三个部分:被管理的设备、代理、网络管理站。一个被管理设备是具有SNMP代理的一个网络节...
  • shangzhihaohao
  • shangzhihaohao
  • 2015-04-12 16:44
  • 2585

嵌入式Linux闪存文件系统-JFFS2的研究.pdf

  • 2011-12-14 14:42
  • 97KB
  • 下载

Java获取电脑CPU个数及系统信息

FROM:http://bingoffice.blog.163.com/blog/static/17403510420115109343883/ Runtime 类: 每个Java...
  • superguy2014
  • superguy2014
  • 2016-09-28 16:55
  • 135

Java获取电脑CPU个数及系统信息

原文地址:http://blog.csdn.net/u014802309/article/details/51437194 Runtime 类: 每个Java应用程序都有一个Runtime类实例,...
  • qq_33032573
  • qq_33032573
  • 2018-01-04 10:35
  • 24

闪存精灵2008 、ChipGenius 主控芯片查询

  • 2011-09-18 16:21
  • 279KB
  • 下载

FlashGenius v3.5 最新 FLASH闪存参数查询工具

  • 2011-06-16 14:22
  • 137KB
  • 下载

50TB ExaDrive SSD投入商用,EB级容量闪存系统来日可期

Nimbus Data在2016年8月宣布推出了ExaFlash阵列。之后又推出ExaDrive并将其作为OEM SSD产品提供给Viking和SMART Modular Technologies这样...
  • BtB5e6Nsu1g511Eg5XEg
  • BtB5e6Nsu1g511Eg5XEg
  • 2017-12-05 00:00
  • 146

【精华】构建闪存系统和生态环境

每种技术和产品的出现都是为了满足时代的某种需求,当然闪存也毫不例外。闪存出道进入大众视野时,人们更多的认为它是划分存储厂商类型的一个代言词,也使得闪存厂商成为一个刚刚降温的热词,如今闪存技术已经迅速发...
  • swingwang
  • swingwang
  • 2016-08-31 21:14
  • 1158
    个人资料
    • 访问:1129次
    • 积分:31
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档