linux/unistd.h
points de fait à asm/unistd.h
, qui indique à son tour soit asm/unistd_32.h
ou asm/unistd_64.h
, qui est l'endroit où les numéros d'appel du système sont définis et présentés à l'espace utilisateur en fonction de l'architecture du système. Ceux-ci viennent du noyau.
bits/unistd.h
est une collection de macros qui augmentent unistd.h
(la plupart du temps des choses pour aider à prévenir les débordements de tampon), qui est conditionnellement inclus via:
/* Define some macros helping to catch buffer overflows. */
#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
# include <bits/unistd.h>
#endif
En substance, la seule tête nécessaire POSIX est en fait, juste unistd.h
, le reste est soit des extensions, soit des définitions du noyau. Donc, juste en incluant unistd.h
est tout ce que vous avez à vous soucier de faire, tout ce dont vous avez besoin sera tiré en fonction de votre architecture et de toutes les options de construction que vous avez sélectionné.