POSIX + C99

A minap talalkoztam olyan C forrasokkal, amelyekben szabvanyos POSIX hivasokat szerettek volna hasznalni C99 kiegeszitesekkel egyutt. Mivel GNU C library-rol van szo, a helyes megoldas allitolag ez:


#define _POSIX_SOURCE 1
#define _POSIX_C_SOURCE 199506L
#define _XOPEN_SOURCE 500
#define _ISOC99_SOURCE

A FreeBSD ezt viszont nem szereti, neki inkabb ez lenne jo:


#define _POSIX_C_SOURCE 200112L
#define _XOPEN_SOURCE 600

Az emlegetett C forrasok gazdai szerint a GNU C library-ben a POSIX es C99 kiegeszitesek additivak, mig a FreeBSD-ben kolcsonosen kizarjak egymast. Most akkor mi mivel kompatibilis es hol itt az igazsag? Erdekessegkeppen a tema a FreeBSD szemszogebol.

Frissites: A Solaris eseteben is kell az _ISOC99_SOURCE. Ime a konkret indoklas:


#error: "Compiler or options invalid; UNIX 03 and POSIX.1-2001 applications require the use of c99"