IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

检查 Linux 下线程库的类型

chen3feng的专栏 2010-07-23 00:07:10 累计浏览 3,706 次
本机暂存

linux 下有 linuxthreads 和 NPTL,nptl 比 linuxthreads 先进,目前新内核都支持 ntpl,相应的 glibc 也支持,遇到老的机器,用的还是 linuxthreads,虽然二者二进制兼容,但是某些细节上还是不同,问题现实存在,无奈也得解决。

方法是用 confstr 来读取系统的配置信息:

#include <unistd.h>

static bool CheckNptl()

{
    char buf[32];
    confstr(_CS_GNU_LIBPTHREAD_VERSION, buf, sizeof(buf));

    return strstr(buf, "NPTL") != NULL;
}

bool IsThreadLibNptl()

{

    static bool is_nptl = CheckNptl(); // 缓存在静态局部变量中,gcc 下静态局部变量的初始化默认情况下是线程安全的。

    return is_nptl;

}

然后在代码中就能方便使用了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen3feng/archive/2010/07/01/5706706.aspx

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. Linux如何统计进程的CPU利用率 (累计阅读 16,308)
  2. 我的 RHCA 之路 (累计阅读 14,013)
  3. Linux内存点滴 用户进程内存空间 (累计阅读 13,232)
  4. 给程序员新手的一些建议 (累计阅读 13,089)
  5. Linux 性能监控、测试、优化工具 (累计阅读 13,012)
  6. 关于linux内存free的一些事情 (累计阅读 12,869)
  7. ps - 按进程消耗内存多少排序 (累计阅读 12,690)
  8. Google怎么用linux (累计阅读 12,582)
  9. Linux Used内存到底哪里去了? (累计阅读 11,868)
  10. find命令的一点注意事项 (累计阅读 11,867)