Linux上获取CPU Core个数的实现

可以通过多种手段取得CPU Core的个数,如:

1) 调用系统提供的函数get_nprocs(),可以在头文件sys/sysinfo.h中发现它

2) 借助系统提供的sysconf()函数:sysconf(_SC_NPROCESSORS_CONF)、sysconf(_SC_NPROCESSORS_ONLN),get_nprocs()也有个相应的get_nprocs_conf()

3) 通过解析/proc/cpuinfo实现

uint16_t get_cpu_number()

{

FILE* fp = fopen("/proc/cpuinfo", "r");

if (NULL == fp) return 1;

char line[LINE_MAX];

uint16_t cpu_number = 0;

sys::CloseHelper<FILE*> ch(fp);

while (fgets(line, sizeof(line)-1, fp))

{

char* name = line;

char* value = strchr(line, ':');

if (NULL == value)

continue;

*value++ = 0;

if (0 == strncmp("processor", name, sizeof("processor")-1))

{

if (!util::CStringUtil::string2uint16(value, cpu_number))

{

return 0;

}

}

}

return (cpu_number+1);

}

Linux上获取CPU Core个数的实现的更多相关文章

  1. linux下查看cpu物理个数和逻辑个数 - chw1989的专栏 - 博客频道 - CSDN.NET

    body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLi ...

  2. Linux系统获取CPU温度

    Linux系统获取CPU温度 摘自:https://jingyan.baidu.com/article/cbf0e500407d072eab289343.html 各位好,本篇将简单介绍如何在不同系列 ...

  3. 查看数量linux下查看cpu物理个数和逻辑个数

    首先声明,我是一个菜鸟.一下文章中出现技术误导情况盖不负责 hadoop@chw-desktop3:~$ cat /proc/cpuinfo processor : 0 vendor_id : Gen ...

  4. linux下查看cpu物理个数和逻辑个数

    hadoop@chw-desktop3:~$ cat /proc/cpuinfo processor   : 0 vendor_id   : GenuineIntel cpu family  : 15 ...

  5. Linux下判断cpu物理个数、几核

    自己服务器的输出 1. 查看物理CPU的个数   #cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l    1 2. 查 ...

  6. 第二章 在Linux上部署.net core

    项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...

  7. .NET平台系列27:在 Linux 上安装 .NET Core/.NET5/.NET6

    系列目录     [已更新最新开发文章,点击查看详细] .NET 在不同的 Linux 发行版上可用. 大多数 Linux 平台和发行版每年都有一个主要版本,并提供用于安装 .NET 的包管理器. 本 ...

  8. Linux c 获取cpu使用率

    部分代码改编自来自http://blog.csdn.net/primeprime/article/details/41458731 主要的原理就是获取top -n 1 | grep Cpu执行的结果, ...

  9. Linux c 获取cpu使用率(2)

    上一篇博文当中,我们谈论了在Linux中如何获取执行命令行的结果,最终得到cpu的 使用率,但是十分不幸的事情是: 1)通过top -n 1 | grep Cpu获取的cpu使用率不会刷新,每次读取结 ...

随机推荐

  1. 强大的NCBI接口

    刚才小玩了下,不错,.net确实很方便,很强大 Using Entrez Utilities Web Service with C# and MS Visual Studio 2005 Updated ...

  2. [转] geochart 地图控件官方示例

    <html> <head> <script type='text/javascript' src='https://www.google.com/jsapi'>&l ...

  3. NLTK与自然语言处理基础

    NLTK (Natural Language Toolkit) NTLK是著名的Python自然语言处理工具包,但是主要针对的是英文处理.NLTK配套有文档,有语料库,有书籍. NLP领域中最常用的一 ...

  4. 9.redis安全

    转自:http://www.runoob.com/redis/redis-tutorial.html Redis 安全 我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis ...

  5. ListView 中 的 分页

     Django Pagination 简单分页 当博客上发布的文章越来越多时,通常需要进行分页显示,以免所有的文章都堆积在一个页面,影响用户体验.Django 内置的 Pagination 能够帮助我 ...

  6. Thread(线程)三

    今天我们继续接着线程讲讲,上一章提到一下task概念, 首先接着task继续往下讲,在前章节提到过Thread怎么实现其他线程完成后再让主线程继续执行的功能,那么如果Task也需要线程等待事件,该怎么 ...

  7. 将本地Jar包安装到maven仓库中去

    开发中会遇到无法通过pom.xml下载jar包的情况,遇到这种情况我们可以手动在本地安装jar包到本地仓库中去,这样就可以下次再用到的话不用再次联网下载,具体以oracle的驱动包ojdbc6.jar ...

  8. VMWare中三种网络连接模式的区别

    VMWare中有桥接.NAT.host-only三种网络连接模式,在搭建伪分布式集群时,需要对集群的网络连接进行配置,而这一操作的前提是理解这三种网络模式的区别. 参考以下两篇文章可以更好的理解: V ...

  9. addin1

    Mono.addin是一个插件框架,更多信息请访问 http://monoaddins.codeplex.com/

  10. MySQL内置功能之视图、触发器和存储过程

    主要内容: 一.视图 二.触发器 三.存储过程 1️⃣  视图 一.关于视图的理解 1.1.何谓视图? 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名], 用户使 ...