is a functional test macro for feature Control in Features.h
/user/include/features.h
/* If _gnu_source is defined by the user, turn on all the other features. */
#ifdef _gnu_source
# undef _isoc99_source
# 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
which _isoc99_source,? _posix_source,huh? _xopen_source are functional test macros,
An attribute that indicates whether a corresponding standard is included.
these different characteristics stem from the various standardized work that has been done over the years (ANSI,? ISO,? POSIX,huh? FIPS , etc.),
Different standard support implements different features,
such as the acquisition of system time,the stat structure is not supported in the ANSI Standard,
The definition of _gnu_source is equivalent to opening up support for all features.
About _gnu_source macros