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. vs2012应用程序的打包和图标设置

    最近用VS2010+QT做了一个小软件,为了把它打包发布,查了很多资料,现在总结下,便于以后查看. 本方法不限于VS2010,也不限于QT,只要你运行你的代码得到exe之后,都可以参照本方法进行. 参 ...

  2. sql之分段统计

    sql之分段统计 需求:获取一个县所有家庭人数在1-2人,3-4人,5-6人,6人以上的家庭数的数组 思路:通过CASE WHEN 将 CBFCYSL分组,然后统计数据条数. 语句: SELECT T ...

  3. 「小程序JAVA实战」springboot的后台搭建(31)

    转自:https://idig8.com/2018/08/29/xiaochengxujavashizhanspringbootdehoutaidajian31/ 根据下面的图,我们来建立下对应的sp ...

  4. 跟着太白老师学python day11 闭包 及在爬虫中的基本使用

    闭包的基本概念: 闭包 内层函数对外层函数的变量(不包括全局变量)的引用,并返回,这样就形成了闭包 闭包的作用:当程序执行时,遇到了函数执行,它会在内存中开辟一个空间,如果这个函数内部形成了闭包, 那 ...

  5. mysql update更新带子查询的实现方式

    现在要做一下数据移植,需要更新相关的数据,需要在mysql中更新时不能将更新的表作为查询的表. 总结一下: 一:单表更新时 例如: update customer set category = 1 W ...

  6. java反射(Field的应用)

    //$Id: DirectPropertyAccessor.java 11405 2007-04-15 12:50:34Z max.andersen@jboss.com $ package org.h ...

  7. 在JBPM的Handle类中调用Spring管理的类

    我们在使用JBPM定义流程的时候经常要在流程定义文件中加入一个继承xxxHandler的类来实现我们的业务逻辑判断或者其他的需求,在这个类中一般都是用Spring的Application来获取,而这种 ...

  8. java.lang.IllegalStateException: getOutputStream() has already been called for this response解决方案

    异常产生原因:web容器生成的servlet代码中有out.write(""),这个和JSP中调用的response.getOutputStream()产生冲突.即Servlet规 ...

  9. mysql存储过程(procedure)

    #创建带参数的存储过程 delimiter // ),out p int) begin ; end // delimiter call pro_stu_name_pass(@n,@p); select ...

  10. 第十一条理解objc_masgSend的作用

    Objetive-C最基本的的东西就是它的消息机制.Objective-C运行时的最基本的东西就是 objc_msgSend, 它就是负责发送一个消息给对象的C函数.   当你写下面这样的代码时:   ...