Rechercher une page de manuel
feature_test_macros
Langue: ja
Version: 2006-04-26 (openSuse - 09/10/07)
Section: 7 (Divers)
̾Á°
feature_test_macros - µ¡Ç½¸¡ºº¥Þ¥¯¥í½ñ¼°
#include <features.h>
ÀâÌÀ
µ¡Ç½¸¡ºº¥Þ¥¯¥í (feature test macro) ¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥Þ¤Ï ¥×¥í¥°¥é¥à¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ëºÝ¤Ë¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤ê ¸ø³«¤µ¤ì¤ëÄêµÁ¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ¤³¤Îµ¡Ç½¤ò»È¤¦¤È¡¢Èóɸ½à¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤Ç¤¡¢ °Ü¿¢À¤Î¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤¹¤ë¤Î¤ËÌòΩ¤Ä¡£ ¾¤Î¥Þ¥¯¥í¤ò»È¤¦¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¸ø³«¤µ¤ì¤Ê¤¤Èóɸ½à¤ÎÄêµÁ¤ò ¸ø³«¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ °Ê²¼¤ÇÀâÌÀ¤¹¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤½¤ì¤¾¤ì¤ÎÀµ³Î¤Ê±Æ¶Á¤ò³Îǧ¤¹¤ë¤Ë¤Ï¡¢ ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë <features.h> ¤òÄ´¤Ù¤ì¤Ð¤è¤¤¡£µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òµ¡Ç½¤µ¤»¤ë¤Ë¤Ï¡¢ ¡Ö¤¢¤é¤æ¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëÁ°¤Ë¡× µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤³¤ì¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢ ¥³¥ó¥Ñ¥¤¥ë¥³¥Þ¥ó¥É¤Ç»ØÄꤹ¤ëÊýË¡ (cc -DMACRO=value) ¤È¡¢¥½¡¼¥¹¥³¡¼¥É¤Ç¤¢¤é¤æ¤ë¥Ø¥Ã¥À¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëÁ°¤Ë ɬÍפʥޥ¯¥í¤òÄêµÁ¤¹¤ëÊýË¡¤¬¤¢¤ë¡£
Linux/glibc ¤Ï°Ê²¼¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò²ò¼á¤¹¤ë:
- _POSIX_C_SOURCE
- ¤³¤Î¥Þ¥¯¥í¤òÃÍ 1 ¤ÇÄêµÁ¤¹¤ë¤È¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç POSIX.1-1990 ¤È ISO C (1990) ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ 199309 °Ê¾å¤ÎÃͤÇÄêµÁ¤¹¤ë¤È¡¢ POSIX.1b (¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ 199506 °Ê¾å¤ÎÃͤÇÄêµÁ¤¹¤ë¤È¡¢ POSIX.1c (¥¹¥ì¥Ã¥É) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ ÃÍ 200112 ¤ÇÄêµÁ¤¹¤ë¤È¡¢(XSI ³ÈÄ¥¤ò½ü¤¯) POSIX.1-2001 ´ðËÜ»ÅÍÍ¤Ë Âбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
- _POSIX_SOURCE
- ¤³¤Î¥Þ¥¯¥í¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ ¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢Ãͤ˴ؤï¤é¤º¡¢ _POSIX_C_SOURCE ¤òÃÍ 1 ¤ÇÄêµÁ¤¹¤ë¤Î¤ÈÅù²Á¤È¤Ê¤ë¡£
- _XOPEN_SOURCE
- ¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¤É¤ó¤ÊÃͤǤ⡢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç POSIX.1, POSIX.2, XPG4 ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ 500 °Ê¾å¤ÎÃͤÇÄêµÁ¤¹¤ë¤È¡¢SUSv2 (UNIX 98) ´ØÏ¢¤ÎÄêµÁ¤¬ ÄɲäǸø³«¤µ¤ì¤ë¡£ 600 °Ê¾å¤ÎÃͤÇÄêµÁ¤¹¤ë¤È¡¢ SUSv3 (UNIX 03; POSIX.1-2001 ´ðËÜ»ÅÍÍ + XSI ³ÈÄ¥¤ÈƱ¤¸) ´ØÏ¢¤ÎÄêµÁ¤È C 99 ¤Ç¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£
- _XOPEN_SOURCE_EXTENDED
- ¤³¤Î¥Þ¥¯¥í¤¬ÃÍ 1 ¤ÇÄêµÁ¤µ¤ì¡¢¤µ¤é¤Ë _XOPEN_SOURCE ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¡¢XPG4v2 UNIX ³ÈÄ¥¤ËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
- _ISOC99_SOURCE
- ISO C (1990) ¤Î C 99 ³ÈÄ¥¤ò¸ø³«¤¹¤ë¡£
- _LARGEFILE64_SOURCE
- LFS (Large File Summit) ¤Ë¤è¤ê "»ÃÄê³ÈÄ¥ (transitional extension)" Single UNIX Specification ¤È¤·¤Æµ¬Äꤵ¤ì¤¿ÂåÂØ API ¤Ë´Ø¤¹¤ëÄêµÁ¤ò¸ø³«¤¹¤ë (http://opengroup.org/platform/lfs.html »²¾È)¡£
- _FILE_OFFSET_BITS
- ¤³¤Î¥Þ¥¯¥í¤òÃÍ 64 ¤ÇÄêµÁ¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë I/O ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÁàºî¤Ë ´ØÏ¢¤¹¤ë 32 ¥Ó¥Ã¥ÈÈǤδؿô¤È¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼«Æ°Åª¤Ë 64¥Ó¥Ã¥ÈÈÇ¤Ë ÊÑ´¹¤µ¤ì¤ë¡£ ¤³¤ì¤Ï¡¢32¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤ÇÂ礤ʥե¡¥¤¥ë (> 2¥®¥¬¥Ð¥¤¥È) ¤Î I/O ¤ò¼Â¹Ô¤¹¤ëºÝ¤ËÌòΩ¤Ä¡£
- _BSD_SOURCE
- ¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç BSD ͳÍè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ ¤Þ¤¿¡¢¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢ÁêÍƤì¤Ê¤¤É¸½à¤¬Â¸ºß¤¹¤ë¾õ¶·¤Ë¤ª¤¤¤Æ BSD ͳÍè¤ÎÄêµÁ¤òÍ¥À褹¤ë¤è¤¦¤Ë¤Ê¤ë¡£
- _SVID_SOURCE
- ¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç System V ͳÍè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë (SVID == System V Interface Definition; standards(7) »²¾È)¡£
- _GNU_SOURCE
- ¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) °Ê²¼¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤Î¤È Åù²Á¤Ë¤Ê¤ë: _BSD_SOURCE, _SVID_SOURCE, _LARGEFILE64_SOURCE, _ISOC99_SOURCE, ÃÍ 1999506 ¤Î _POSIX_C_SOURCE ÃÍ 600 ¤Î _XOPEN_SOURCE¡£ ¤µ¤é¤Ë¡¢³Æ¼ï¤Î GNU ¸ÇͤγÈÄ¥¤â¸ø³«¤µ¤ì¤ë¡£
- _REENTRANT
- ¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¤¤¤¯¤Ä¤«¤Î¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ê´Ø¿ô ÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤³¤ÎÂå¤ï¤ê¤Ë cc -pthread ¤ò»ÈÍѤ¹¤ë¤³¤È¡£
- _THREAD_SAFE
- _REENTRANT ¤ÎƱµÁ¸ì¡£ ¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È¤Î¸ß´¹À¤òÄ󶡤¹¤ë¤¿¤á¤Î¤â¤Î¡£
- _FORTIFY_SOURCE
- ¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢Ê¸»úÎó¤ä¥á¥â¥ê¤ÎÁàºî¤ò¹Ô¤¦ÍÍ¡¹¤Ê´Ø¿ô¤ò »ÈÍѤ¹¤ëºÝ¤Ë¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Î·Ú¤á¤Î¥Á¥§¥Ã¥¯¤¬ ¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬¸¡½Ð¤µ¤ì¤ë ¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¤¢¤¯¤Þ¤Ç¤è¤¯¤¢¤ëÎã¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£ ¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢°Ê²¼¤Î´Ø¿ô¤Ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤Æ¤¤¤ë: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3), strcpy(3), strncpy(3), strcat(3), strncat(3), sprintf(3), snprintf(3), vsprintf(3), vsnprintf(3), gets(3). _FORTIFY_SOURCE ¤¬ 1 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ì¥Ù¥ë¤¬ 1 (gcc -O1) ¤«¤½¤ì°Ê¾å¤Ç¤¢¤ì¤Ð¡¢µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¿¶¤ëÉñ¤¤¤ò ÊѲ½¤µ¤»¤Ê¤¤¤è¤¦¤Ê¥Á¥§¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤ë¡£ _FORTIFY_SOURCE ¤¬ 2 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤µ¤é¤Ê¤ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤ë¤¬¡¢ µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¤¤¤¯¤Ä¤«¤¬¼ºÇÔ¤¹¤ë²ÄǽÀ¤¬¤¢¤ë¡£ ¤¤¤¯¤Ä¤«¤Î¥Á¥§¥Ã¥¯¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼Â¹Ô¤Ç¤¡¢¥³¥ó¥Ñ¥¤¥é¤Î·Ù¹ð¤È¤·¤Æ ɽ¼¨¤µ¤ì¤ë¡£Â¾¤Î¥Á¥§¥Ã¥¯¤Ï¼Â¹Ô»þ¤Ë¹Ô¤ï¤ì¡¢¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤·¤¿¾ì¹ç ¤Ë¤Ï¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ê¤ë¡£ ¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¥³¥ó¥Ñ¥¤¥é¤ÎÂбþ¤¬É¬ÍפǤ¢¤ê¡¢ ¥Ð¡¼¥¸¥ç¥ó 4.0 °Ê¹ß¤Î gcc(1) ¤ÇÍøÍѤǤ¤ë¡£
gcc(1) ¤¬µ¯Æ°¤µ¤ì¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç _BSD_SOURCE, _SVID_SOURCE, _POSIX_SOURCE, _POSIX_C_SOURCE=199506 ¤¬ÄêµÁ¤µ¤ì¤ë¡£ ¸Ä¡¹¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢ÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤¿¾ì¹ç¤ò½ü¤ ¾¤Î¥Þ¥¯¥í¤Ï̵¸ú¤È¤Ê¤ë (Îã³°: _POSIX_C_SOURCE ¤¬Â¾¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ _POSIX_C_SOURCE ¤Ï¾ï¤ËÃÍ 200112 (¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï 199506) ¤ÇÄêµÁ¤µ¤ì¤ë¡£ ⤷¡¢¥³¥ó¥Ñ¥¤¥é¤¬»ÈÍѤ¹¤ëɸ½à¤ò»ØÄꤹ¤ë¥â¡¼¥É¤Çµ¯Æ°¤µ¤ì¤¿¾ì¹ç (-std=c99 ¥Õ¥é¥°) ¤Ï¤³¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤)¡£ ¤Þ¤¿¡¢Ê£¿ô¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤¤ë¡£ ¤³¤Î¾ì¹ç¡¢ÄêµÁ¤·¤¿¥Þ¥¯¥í¤Ï¤¹¤Ù¤Æ͸ú¤Ë¤Ê¤ë¡£
½àµò
POSIX.1 ¤Ç¤Ï _POSIX_C_SOURCE, _POSIX_SOURCE, _XOPEN_SOURCE ¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ _XOPEN_SOURCE_EXTENDED ¤Ï XPG4v2 (ÊÌ̾ SUSv1) ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤¿¡£ _FILE_OFFSET_BITS ¤Ï¤É¤Îɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ ¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤ÇºÎÍѤµ¤ì¤Æ¤¤¤ë¡£ _BSD_SOURCE, _SVID_SOURCE, _GNU_SOURCE, _FORTIFY_SOURCE, _REENTRANT, _THREAD_SAFE ¤Ï Linux (glibc) ¸ÇͤǤ¢¤ë¡£Ãí°Õ
<features.h> ¤Ï Linux/glibc ¸ÇͤΥإåÀ¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ ¾¤Î¥·¥¹¥Æ¥à¤Ë¤âƱÍͤÎÌÜŪ¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤¬¡¢ÉáÄ̤ϰ㤦̾Á°¤Ç¤¢¤ë¡£ ¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤êɬÍפ˱þ¤¸¤Æ ¼«Æ°Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¡£µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤ë¤¿¤á¤Ë ÌÀ¼¨Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¡£¾åµ¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤¦¤Á¤É¤ì¤¬ÄêµÁ¤µ¤ì¤¿¤«¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ <features.h> ¤Ï¡¢Â¾¤Î glibc ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¥Á¥§¥Ã¥¯¤µ¤ì¤ë³Æ¼ï¤Î¾¤Î¥Þ¥¯¥í¤ò¡¢ ÆâÉô¤ÇÄêµÁ¤¹¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î̾Á°¤Ï¥¢¥ó¥À¡¼¥¹¥³¥¢ 2¤Ä¤Ç»Ï¤Þ¤ë (Î㤨¤Ð __USE_MISC)¡£ ¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò ·è¤·¤Æ ľÀÜÄêµÁ¤¹¤Ù¤¤Ç¤Ï¤Ê¤¤¡£ Âå¤ï¤ê¤Ë¡¢¾åµ¤Î¥ê¥¹¥È¤Ë¤¢¤ëŬÀڤʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤Ù¤¤Ç¤¢¤ë¡£
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre