Next: Generic Headers, Previous: Header Portability, Up: Header Files [Contents][Index]
¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¤ÆÃÄê¤Î¥·¥¹¥Æ¥à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÄ´ºº¤·¤Þ¤¹ — ¤½¤ì¤é¤¬ ¸ºß¤·¤Æ¤¤¤ë¤«¡¤¤½¤·¤Æ¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¤ÆÃÄê¤Î¥·¥ó¥Ü¥ë¤òÀë¸À¤·¤Æ¤¤¤ë¤«¤òÄ´ ºº¤·¤Þ¤¹¡¥
°Ê²¼¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÄ´ºº¤·¤Þ¤¹¡¥ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿‘DIR’¤òÄêµÁ¤·¤Æ¤¤ ¤ë¤â¤Î¤ËÂФ·¤Æ¡¤¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤Æ¤¤¤ëC¥×¥ê¥×¥í¥»¥Ã¥µ¥Þ¥¯¥í¤òÄêµÁ¤·¤Þ¤¹¡¥
dirent.h | HAVE_DIRENT_H |
sys/ndir.h | HAVE_SYS_NDIR_H |
sys/dir.h | HAVE_SYS_DIR_H |
ndir.h | HAVE_NDIR_H |
¥½¡¼¥¹¥³¡¼¥ÉÆâ¤Î¥Ç¥£¥ì¥¯¥È¥ê¥é¥¤¥Ö¥é¥ê¤ÎÀë¸À¤Ï¡¤°Ê²¼¤Î¤è¤¦¤Ë¤¹¤Ù¤¤Ç¤·¤ç ¤¦¡¥
#if HAVE_DIRENT_H # include <dirent.h> # define NAMLEN(dirent) strlen((dirent)->d_name) #else # define dirent direct # define NAMLEN(dirent) (dirent)->d_namlen # if HAVE_SYS_NDIR_H # include <sys/ndir.h> # endif # if HAVE_SYS_DIR_H # include <sys/dir.h> # endif # if HAVE_NDIR_H # include <ndir.h> # endif #endif
¾åµ¤ÎÀë¸À¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¤¥×¥í¥°¥é¥à¤Ï·¿¤òstruct direct
¤Ç¤Ï¤Ê
¤¯struct dirent
¤È¤·¤ÆÊÑ¿ô¤òÀë¸À¤·¡¤struct dirent
¤Ø¤Î¥Ý¥¤¥ó
¥¿¤òÅϤ¹¤³¤È¤Ë¤è¤Ã¤Æ¡¤NAMLEN
¥Þ¥¯¥í¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê̾¤Î
Ťµ¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡¥
¤³¤Î¥Þ¥¯¥í¤Ï¡¤SCO Xenix dir¤Èx¥é¥¤¥Ö¥é¥ê¤âÄ´ºº¤·¤Þ¤¹¡¥
sys/types.h¤¬major
¡¤minor
¡¤¤½¤·¤Æmakedev
¤òÄê
µÁ¤·¤Æ¤¤¤Ê¤¤¤¬¡¤sys/mkdev.h¤¬ÄêµÁ¤·¤Æ¤¤¤ë¾ì¹ç¡¤
MAJOR_IN_MKDEV
¤òÄêµÁ¤·¤Þ¤¹¡¥¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¡¤
sys/sysmacros.h¤¬ÄêµÁ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤MAJOR_IN_SYSMACROS
¤ò
ÄêµÁ¤·¤Þ¤¹¡¥
sys/stat.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëS_ISDIR
¡¤S_ISREG
Åù¤Î¥Þ¥¯
¥í¤¬Àµ³Î¤Ëưºî¤·¤Ê¤¤(´Ö°ã¤Ã¤¿Àµ¤ÎÃͤòÊÖ¤¹)¾ì¹ç¡¤
STAT_MACROS_BROKEN
¤òÄêµÁ¤·¤Þ¤¹¡¥Tektronix UTekV¡¤Amdahl UTS¡¤¤½
¤·¤ÆMotorola System V/88¤Î¾ì¹ç¤¬¤½¤¦¤Ç¤¹¡¥
stdbool.h¤¬Â¸ºß¤·¡¤¤½¤ì¤¬C99¤Ë½àµò¤·¤Æ¤¤¤ë¾ì¹ç¡¤
HAVE_STDBOOL_H
¤ò1¤ËÄêµÁ¤·¤Þ¤¹¡¥·¿_Bool
¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤
HAVE__BOOL
¤ò1¤ËÄêµÁ¤·¤Þ¤¹¡¥C99¤ÎÍ×µá¤òËþ¤¿¤¹¤¿¤á¡¤system.h
¤Ë¤Ï°Ê²¼¤Î¥³¡¼¥É¤ò´Þ¤á¤ë¤Ù¤¤Ç¤¹¡¥
#if HAVE_STDBOOL_H # include <stdbool.h> #else # if ! HAVE__BOOL # ifdef __cplusplus typedef bool _Bool; # else typedef unsigned char _Bool; # endif # endif # define bool _Bool # define false 0 # define true 1 # define __bool_true_false_are_defined 1 #endif
¥·¥¹¥Æ¥à¤ËANSI C¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¤
STDC_HEADERS
¤òÄêµÁ¤·¤Þ¤¹¡¥ÆÃ¤Ë¤³¤Î¥Þ¥¯¥í¤Ï¡¤stdlib.h¡¤
stdarg.h¡¤string.h¡¤¤½¤·¤Æfloat.h¤òÄ´ºº¤·¡¤¥·¥¹¥Æ¥à
¤Ë¤½¤ì¤é¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤¤ª¤½¤é¤¯ANSI C¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Î
»Ä¤ê¤â¸ºß¤·¤Þ¤¹¡¥Æ±Íͤˡ¤¤³¤Î¥Þ¥¯¥í¤Ïstring.h¤¬memchr
¤òÀë
¸À(¾¤Îmem
´Ø¿ô¤â¤ª¤½¤é¤¯Â¸ºß)¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¡¤stdlib.h¤¬
free
¤òÀë¸À(malloc
¤ä¾¤Î´ØÏ¢¤¹¤ë´Ø¿ô¤â¤ª¤½¤é¤¯Â¸ºß)¤·¤Æ¤¤¤ë
¤«¤É¤¦¤«¡¤¤½¤·¤Æ¡¤ctype.h¥Þ¥¯¥í¤¬¡¤ANSI C¤¬Í׵᤹¤ë¥Ï¥¤
¥Ó¥Ã¥È¥»¥Ã¥Èʸ»ú¤Ç¤âưºî¤¹¤ë¤«¤É¤¦¤«¤òÄ´ºº¤·¤Þ¤¹¡¥
GCC¤¬¤¢¤ë¥·¥¹¥Æ¥à¤Î¿¤¯¤ÏANSI C¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤
¤Î¤Ç¡¤¥·¥¹¥Æ¥à¤ËANSIÂбþ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë(¤½¤·¤Æ¡¤¤ª¤½¤é¤¯C ¥é
¥¤¥Ö¥é¥ê´Ø¿ô) ¤¬Â¸ºß¤·¤Æ¤¤¤ë¤³¤È¤ò·èÄꤹ¤ë¤¿¤á¤Ë¡¤__STDC__
¤ÎÂå¤ï
¤ê¤ËSTDC_HEADERS
¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
ANSI C¥Ø¥Ã¥À¤¬Ìµ¤¤¥·¥¹¥Æ¥à¤Ë¤Ï¿¤¯¤ÎÊѼ郎¸ºß¤·¤Æ¤¤¤Æ¡¤¤½¤³¤Ç ¤Ï¡¤¥·¥¹¥Æ¥à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Àë¸À¤·¤Æ¤¤¤ë¤â¤Î¤òÀµ³Î¤ËÍý²ò¤¹¤ë¤è¤ê¡¤»ÈÍѤ¹ ¤ë´Ø¿ô¤òÀë¸À¤¹¤ëÊý¤¬¤è¤êÍÆ°×¤Ç¤·¤ç¤¦¡¥ANSI¤ÈBSD¤Î´Ø ¿ô¤¬º®ºß¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ê¤Þ¤¹¡¥¤Û¤È¤ó¤ÉANSI¤À¤¬ ‘memmove’¤¬Ìµ¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥BSD´Ø¿ô¤¬string.h¤ä strings.h ¤Ç¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥BSD´Ø ¿ô¤·¤«»ý¤Ã¤Æ¤¤¤Ê¤¤¤¬ string.h¤¬Â¸ºß¤¹¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥¥á¥â¥ê´Ø¿ô ¤¬memory.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤string.h¤Ç¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î ¤â¤¢¤ê¤Þ¤¹¡¥Åù¡¹¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¤¬¤¢¤ê¤Þ¤¹¡¥°ì¤Ä¤Îʸ»úÎó´Ø¿ô¤È°ì¤Ä¤Î¥á ¥â¥ê´Ø¿ô¤òÄ´ºº¤¹¤ì¤Ð¶²¤é¤¯½½Ê¬¤Ç¤¹¡¥¥é¥¤¥Ö¥é¥ê¤ËANSI¥Ð¡¼¥¸¥ç¥ó ¤Î¤â¤Î¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¤Â¾¤Î¤â¤Î¤â¤Û¤È¤ó¤É¸ºß¤·¤Þ¤¹¡¥°Ê²¼¤ò configure.ac¤Ë½ñ¤¹þ¤à¾ì¹ç¤ò¹Í¤¨¤Þ¤¹¡¥
AC_HEADER_STDC AC_CHECK_FUNCS(strchr memcpy)
¥³¡¼¥ÉÆâ¤Ë¡¤°Ê²¼¤Î¤è¤¦¤ÊÀë¸À¤ò»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥
#if STDC_HEADERS # include <string.h> #else # if !HAVE_STRCHR # define strchr index # define strrchr rindex # endif char *strchr (), *strrchr (); # if !HAVE_MEMCPY # define memcpy(d, s, n) bcopy ((s), (d), (n)) # define memmove(d, s, n) bcopy ((s), (d), (n)) # endif #endif
BSD¤È¤Ï°Û¤Ê¤ëmemchr
¡¤memset
¡¤strtok
¡¤¤Þ¤¿
¤Ï strspn
¤ÎÍͤʴؿô¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¤¥Þ¥¯¥í¤ÏÉÔ½½Ê¬¤Ç¤·¤ç¤¦¡¥¤½¤ì¤¾
¤ì¤Î´Ø¿ô¤ò¼ÂÁõ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥(¥·¥¹¥Æ¥à¤ÎC¥é¥¤¥Ö¥é¥ê¤Î¤â¤Î¤¬¡¤¼êư¤Ç
ºÇŬ²½¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç)ɬÍפʤȤ¤À¤±¼ÂÁõ¤òÁȤ߹þ¤à´Êñ¤ÊÊýË¡
¤È¤·¤Æ¡¤Î㤨¤Ðmemchr
¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¤¤½¤ì¤òmemchr.c¤Ë½ñ¤
¹þ¤ß¡¤‘AC_REPLACE_FUNCS(memchr)’¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¤¹¡¥
sys/wait.h¤¬Â¸ºß¤·¤Æ¡¤POSIX¤È¸ß´¹À¤¬¤¢¤ë¾ì¹ç¡¤
HAVE_SYS_WAIT_H
¤òÄêµÁ¤·¤Þ¤¹¡¥Èó¸ß´¹À¤Ï¡¤sys/wait.h¤¬Â¸ºß
¤·¤Ê¤¤¾ì¹ç¤ä¡¤¥¹¥Æ¡¼¥¿¥¹¤ÎÃͤòÊݸ¤¹¤ë¤¿¤á¡¤int
¤ÎÂå¤ï¤ê¤Ë¸Å¤¤
BSD¤Îunion wait
»ÈÍѤ¹¤ë¾ì¹ç¤ËÀ¸¤¸¤Þ¤¹¡¥
sys/wait.h¤¬POSIX¤È¸ß´¹À¤¬¤Ê¤¤¾ì¹ç¡¤¤½¤ì¤ò¥¤¥ó¥¯¥ë¡¼¥É
¤¹¤ëÂå¤ï¤ê¤Ë¡¤¤½¤ì¤é¤ÎÄ̾ï¤Î²ò¼á¤òÍѤ¤¤ÆPOSIX¤Î¥Þ¥¯¥í¤òÄêµÁ¤·
¤Æ¤¯¤À¤µ¤¤¡¥Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡¥
#include <sys/types.h> #if HAVE_SYS_WAIT_H # include <sys/wait.h> #endif #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif
unistd.h¤¬POSIX¥·¥¹¥Æ¥à¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤
_POSIX_VERSION
¤¬ÄêµÁ¤µ¤ì¤Þ¤¹¡¥unistd.h¤¬Ìµ¤¤¾ì¹ç¡¤ÌÀ¤é¤«¤Ë
POSIX¥·¥¹¥Æ¥à¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¤·¤«¤·¡¤unistd.h¤ò»ý¤Ä
POSIX¤Ç¤Ï¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ê¤Þ¤¹¡¥
¥·¥¹¥Æ¥à¤¬POSIX¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´ºº¤¹¤ëÊýË¡¤Ï°Ê²¼¤Î ¤è¤¦¤Ë¤·¤Þ¤¹¡¥
#if HAVE_UNISTD_H # include <sys/types.h> # include <unistd.h> #endif #ifdef _POSIX_VERSION /* Code for POSIX systems. */ #endif
¥×¥í¥°¥é¥à¤¬¡¤time.h¤Èsys/time.h¤ÎξÊý¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë²Ä
ǽÀ¤¬¤¢¤ë¾ì¹ç¡¤TIME_WITH_SYS_TIME
¤òÄêµÁ¤·¤Þ¤¹¡¥¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¤
sys/time.h¤¬time.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¤¬¡¤
time.h¤ÏÊ£¿ô²ó¤Î¥¤¥ó¥¯¥ë¡¼¥É¤ËÂФ·¤ÆÊݸ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¤¥×¥í¥°
¥é¥à¤ÇÌÀ¼¨Åª¤ËξÊý¤Î¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¤³¤Î¥Þ¥¯
¥í¤Ï¡¤Î㤨¤Ð¡¤struct tm
¤ÈƱÍÍ¡¤struct timeval
¤ò»ÈÍѤ¹¤ë¥×
¥í¥°¥é¥à¤ÇÌò¤ËΩ¤Á¤Þ¤¹¡¥ AC_CHECK_HEADERS(sys/time.h)
¤ò»ÈÍѤ·¤Æ
¤¤¤ë¤³¤È¤òÄ´ºº²Äǽ¤Ë¤¹¤ëHAVE_SYS_TIME_H
¤È°ì½ï¤Ë»ÈÍѤ¹¤ë¤Î¤¬ºÇÁ±¤Î
ÊýË¡¤Ç¤¹¡¥
#if TIME_WITH_SYS_TIME # include <sys/time.h> # include <time.h> #else # if HAVE_SYS_TIME_H # include <sys/time.h> # else # include <time.h> # endif #endif
TIOCGWINSZ
¤Î»ÈÍѤ¬<sys/ioctl.h>¤òÍ׵᤹¤ë¾ì¹ç¡¤
GWINSZ_IN_SYS_IOCTL
¤òÄêµÁ¤·¤Þ¤¹¡¥¤½¤ì°Ê³°¤Ç¤Ï¡¤TIOCGWINSZ
¤Ï<termios.h>¤Ç¸«¤Ä¤«¤ë¤Ï¤º¤Ç¤¹¡¥
°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ»ÈÍѤ·¤Þ¤¹¡¥
#if HAVE_TERMIOS_H # include <termios.h> #endif #if GWINSZ_IN_SYS_IOCTL # include <sys/ioctl.h> #endif
Next: Generic Headers, Previous: Header Portability, Up: Header Files [Contents][Index]