私はプロジェクトに取り組んでおり、コードにはマクロ定義が含まれています:
#define __USE_MISC
コードはそれを使用していないので、他の目的があると思います。
__USE_MISC は、次/usr/include/features.h
の条件で定義されています。
#if defined _BSD_SOURCE || defined _SVID_SOURCE
# define __USE_MISC 1
#endif
__USE_MISC --> BSD と System V Unix に共通するものを定義します。
_BSD_SOURCE
したがって、コードは、との両方が定義されていない場合でも、常に定義されていることを確認したいようです( _SVID_SOURCE
glibc 2.20 以降では、 enable を定義しています)。_DEFAULT_SOURCE
__USE_MISC
詳細については、機能テスト マクロを参照してください。
__USE_MISC
実装のヘッダーが「機能テスト マクロ」を処理する方法の内部詳細です。このマクロは、ビルドで使用できる標準関数のセットをコンパイラに指示します。Thiruvalluvar の回答が示すように、ビルドで_BSD_SOURCE
または構成が必要な 場合は、ライブラリ ヘッダーによって (内部使用のために) セットアップされ_SVID_SOURCE
ます。
コード/ビルドでそのマクロを直接処理しないでください。代わりに、文書化された機能テスト マクロを使用する必要があります。glibc のドキュメントはここにあります: http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html