BSD SOURCE Функции BSD могут конфликтовать с другими функциями, и эти конфликты всегда разрешаются в пользу поведения, соответствующего стандарту System V, или, если определен или подразумевается любой макрос функций POSIX, Х/Open или System V, единственным макросом, который включает поведение BSD является ISOC99 SOURCE. (Точное определение этого макроса временами изменялось и может меняться в дальнейшем, поскольку он не регламентируется какимлибо стандартом.)
GNU SOURCE В случаях конфликта _GNU_SOURCE включает все, что возмож но, отдавая предпочтение интерфейсам System V, а не BSD. Этот макрос также добавляет некоторые специальные для GNU и Linux интерфейсы, например, владение файлами.
Когда стандартного набора макросов недостаточно, обычно определяют макрос GNU SOURCE (включает все — самое простое решение), _XOPEN_SOURCE600 (наиболее вероятно, что пригодится поднабор GNU SOURCE) или ISOC99 SOURCE (использование функций наиболее позднего стандарта С, поднабор _XOPEN_SOURCE6QO).
62 Интерфейсы POSIX 621 Обязательные типы POSIX POSIX описывает некоторые определения типов в заголовочном файле