您的位置:首页 > 运维架构 > Linux

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

2016-08-31 15:39 375 查看
</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);}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: