c++ - _GNU_SOURCE 和 __USE_GNU

标签 c++ c linux gnu glibc

我想使用 CPU_SET , 这是一个 glibc linux 特定的宏,应该在 sched.h 中定义手册页明确指出 _GNU_SOURCE必须定义以便定义宏。但是,查看标题,CPU_SET仅当 __USE_GNU 时才定义已定义(有 #ifdef 保护)。我好像记得几年前_GNU_SOURCE需要。

问题:

1) 很明显,联机帮助页已关闭。如何通知维护人员手册页不正确?

2) 从 _GNU_SOURCE 转换的时间是什么时候?至__USE_GNU发生(根据版本或时间)

3) 是否存在新版本的 glibc 仍然使用 _GNU_SOURCE 的情况? ?或者我可以安全地假设定义 __USE_GNU够了吗?

最佳答案

_GNU_SOURCE 是您应该定义自己的唯一一个。 __USE_GNU 在定义 _GNU_SOURCE 时通过 features.h 中的机制(包含在所有其他 glibc 头文件中)在内部定义,并且可能在其他条件。自己定义或取消定义 __USE_GNU 会严重破坏 glibc 头文件。

关于c++ - _GNU_SOURCE 和 __USE_GNU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296963/

相关文章:

c++ - 在 OpenSceneGraph 中创建一个球体(使用 osg::Geometry)

c++ - 检测 32 位双字 + 双字进位/C++

c - C中静态函数的优先级

c# - Ubuntu上的Unity/C#和Python通信

c++ - 如何定义指向类成员函数的指针

c++ - 内存模型,负载获取语义实际上是如何工作的?

c++ - 如何创建对 const 指针的 const 引用?

c - 如何使用 fread 读取二进制文件?

c - 在 gcc 内联汇编中加载寄存器? (简单的?)

linux - 在 Linux : writing into a FIFO