質問: UNIX派生システムを識別する一般的なマクロ? (Linux、OSX、BSD、...) MacOSXでマクロ `__ unix __` が定義されていないのはなぜかと思います。 MacOSXはBSD UNIXの派生物ですか? 私のコードで `__ unix __` マクロを定義した場合、いくつかの問題がありますか? 一般的に、現在のプラットフォームをチェックするとき、私は次のようなことをするのが好きです: ``` #ifdef __unix__ ... #endif ``` の代わりに: ``` #if defined(__unix__) || defined(__APPLE__) || defined(__linux__) || defined(BSD) ... ... #endif ``` 最良の選択肢は、自分のマクロを一箇所に定義することでしょうか?例えば。: ``` #if defined(__unix__) || defined(__APPLE__) || defined(__linux__) || defined(BSD) ... #define UNIX_ #endif ```
回答: POSIX requires `_POSIX_VERSION` to be defined in (also accessible via `sysconf(_SC_VERSION)`), so try that.