我想使用CPU_SET,这是一个特定于glibc linux的宏,应该在sched.h中定义。手册页清楚地指出,必须定义_GNU_SOURCE,这样才能定义宏。但是,查看报头,只有在定义了__USE_GNU的情况下才定义CPU_SET (有一个#ifdef保护)。我似乎记得几年前需要_GNU_SOURCE。
问题:
1)显然手册页已关闭。如何通知维护人员手册页不正确?
2)从_GNU_SOURCE到__USE_GNU的转换是什么时候发生的(无论是版本还是时间)
3)是否存在较新版本的glibc仍然使用_GNU_SOURCE的情况?或者,我可以放心地假设定义__USE_GNU就足够了吗?
发布于 2011-09-04 10:11:11
_GNU_SOURCE是唯一一个你应该定义自己的东西。__USE_GNU是在定义_GNU_SOURCE时通过features.h中的一种机制(包含在所有其他glibc头中)在内部定义的,可能在其他情况下也是如此。自己定义或取消定义__USE_GNU将严重破坏glibc头文件。
发布于 2012-07-21 18:30:46
你必须在任何事情之前使用define_GNU_SOURCE。下面的代码片段可以在这里运行:
#define _GNU_SOURCE
#include <sched.h>
int main()
{
cpu_set_t set;
CPU_SET(0, &set);
return 0;
}https://stackoverflow.com/questions/7296963
复制相似问题