關於_GNU_SOURCE宏

是在features.h中用於特性控制的一個功能測試宏 測試

/user/include/features.h spa

/* If _GNU_SOURCE was defined by the user, turn on all the other features. */ di

#ifdef _GNU_SOURCE 時間

# undef _ISOC99_SOURCE co

# define _ISOC99_SOURCE 1 工作

# undef _POSIX_SOURCE 系統

# define _POSIX_SOURCE 1

# undef _POSIX_C_SOURCE

# define _POSIX_C_SOURCE 200809L

# undef _XOPEN_SOURCE

# define _XOPEN_SOURCE 700

# undef _XOPEN_SOURCE_EXTENDED

# define _XOPEN_SOURCE_EXTENDED 1

# undef _LARGEFILE64_SOURCE

# define _LARGEFILE64_SOURCE 1

# undef _BSD_SOURCE

# define _BSD_SOURCE 1

# undef _SVID_SOURCE

# define _SVID_SOURCE 1

# undef _ATFILE_SOURCE

# define _ATFILE_SOURCE 1

#endif

其中_ISOC99_SOURCE, _POSIX_SOURCE, _XOPEN_SOURCE都是功能測試宏,

用於指示是否包含對應標準的特性,

而這些不一樣的特性源於過去20多年來進行的各類標準化工做(ANSI, ISO, POSIX, FIPS等),

不一樣的標準支持實現了不一樣的特性,

如系統時間的獲取,stat結構是在ANSI標準中是不支持的,

而定義了_GNU_SOURCE至關於開啓了對全部特性的支持。

相關文章
相關標籤/搜索