_GNU_SOURCE et __ _ _ USAGE_GNU
Je veux utiliser CPU_SET
, qui est une glibc spécifique à linux, macro qui doit être défini dans sched.h
La page de manuel stipule clairement que _GNU_SOURCE
doit être défini de telle sorte que la macro est définie. Cependant, en regardant l'en-tête, CPU_SET
n'est défini que si __USE_GNU
est défini (il y a un #ifdef
de la garde). Je me rappelle il y a quelques années que _GNU_SOURCE
était nécessaire.
Questions:
1) Clairement la page de manuel est désactivé. Comment dois-je aviser le responsable que la page de manuel est incorrect?
2) Quand la transition de _GNU_SOURCE
à __USE_GNU
arriver (que ce soit en termes de la version ou de temps)
3) existe-t-il des circonstances où les nouvelles versions de la glibc toujours utiliser _GNU_SOURCE
? Ou puis-je présumer que la définition de __USE_GNU
est-elle suffisante?
Vous devez vous connecter pour publier un commentaire.
_GNU_SOURCE
est le seul que vous devez définir vous-même.__USE_GNU
est définie en interne par le biais d'un mécanisme defeatures.h
(qui est compris par tous les autres en-têtes glibc) lorsque_GNU_SOURCE
est défini, et, éventuellement, dans d'autres conditions. La définition ou la suppression d'__USE_GNU
vous-même aura bien casser les en-têtes glibc._GNU_SOURCE
seulement. Toutes les autres idées pour lesquelles cela pourrait se produire?_GNU_SOURCE
doit être défini avant le tous en-tête standard est inclus. Vous ne pouvez pas attendre de le définir jusqu'à ce que juste avant l'en-tête vous en avez besoin pour._GNU_SOURCE
à la ligne du haut de la plus à l'intérieur de l'en-tête de fichier, mais il a travaillé 🙂-D_GNU_SOURCE
. Ensuite, il ne fait aucun doute qu'il est défini à partir du début.#include <features.h>
pour obtenir que cela fonctionne sans expliciting définition__USE_GNU
.vous avez à define_GNU_SOURCE avant toute autre chose. Cet extrait de code qui fonctionne ici: