의 모든 기능에 대한 자세한 내용은 _GNU_SOURCE
설명서를 참조하십시오.
GNU 문서에서 :
매크로 : _GNU_SOURCE
이 매크로를 정의하면 ISO C89, ISO C99, POSIX.1, POSIX.2, BSD, SVID, X / Open, LFS 및 GNU 확장과 같은 모든 것이 포함됩니다. POSIX.1이 BSD와 충돌하는 경우 POSIX 정의가 우선합니다.
기능 테스트 매크로 의 Linux 매뉴얼 페이지에서 :
_GNU_SOURCE
이 매크로를 정의하면 (임의의 값으로) _ATFILE_SOURCE, _LARGEFILE64_SOURCE, _ISOC99_SOURCE, _XOPEN_SOURCE_EXTENDED, _POSIX_SOURCE, _POSIX_C_SOURCE 값이 200809L (2.11 이전의 glibc 버전에서 200112L, 2.8에서 glibc 버전 이전의 2,020b 버전 2.1 이전의 glibc 버전에서 2,020b 버전 2.1 이전의 glibc 버전 2, glibc 버전 2.1 이전 버전) 값이 700 인 _XOPEN_SOURCE (2.10 이전의 glibc 버전에서는 600, 2.2 이전의 glibc 버전에서는 500) 또한 다양한 GNU 관련 확장도 노출됩니다.
glibc 2.19부터 _GNU_SOURCE를 정의하면 _DEFAULT_SOURCE를 암시 적으로 정의하는 효과도 있습니다. 2.20 이전의 glibc 버전에서 _GNU_SOURCE를 정의하면 _BSD_SOURCE 및 _SVID_SOURCE를 암시 적으로 정의하는 효과도있었습니다.
참고 : 헤더 파일을 포함 하기 전에 해당 헤더가 기능을 사용할 수 있도록 _GNU_SOURCE
정의 해야 합니다. 예를 들면 다음과 같습니다.
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
...
_GNU_SOURCE
-D
플래그를 사용하여 컴파일마다 활성화 할 수도 있습니다 .
$ gcc -D_GNU_SOURCE file.c
( -D
특정한 것은 _GNU_SOURCE
아니지만 매크로는 이런 식으로 정의됩니다).
_GNU_SOURCE
가strfry
와 를 얻기위한 것임을 알고memfrob
있습니다.