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

</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);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值