Запрос расширений GNU, но в противном случае POSIX-совместимые функции?
Есть ли способ с помощью макросов тестирования функций, чтобы glibc предоставлял расширения GNU (функции, не указанные в POSIX, и дополнительные макросы флагов / аргументов для стандартных функций, такие как MAP_ANONYMOUS
), но все же предпочитаете семантику POSIX всякий раз, когда определения POSIX и GNU конфликтуют? Я думаю, что такие вещи, как basename
, strerror_r
, так далее.
1 ответ
Решение
Для конкретного случая basename()
, в том числе <libgen.h>
заголовок дает вам определение XPG / POSIX.
MAP_ANONYMOUS
не является расширением GNU (_GNU_SOURCE
), это определено, если либо _BSD_SOURCE
или же _SVID_SOURCE
определено.