我想使用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
复制相似问题