@anchor{Structures}
Следующие макросы проверяют наличие определенных структур или полей
структур. Для проверки структур, не перечисленных в этом разделе,
используйте макрос AC_EGREP_CPP (see section Исследование деклараций)
или AC_TRY_COMPILE (see section Проверка синтаксиса).
S_ISDIR, S_ISREG и т. п., определенные в
`sys/stat.h', работают неправильно (возвращая неверные
положительные результаты), то определяется переменная
STAT_MACROS_BROKEN. Это происходит на системах Tektronix UTekV,
Amdahl UTS и Motorola System V/88.
TIME_WITH_SYS_TIME. В некоторых старых
системах `sys/time.h' подключает `time.h', но `time.h'
не защищен от многократного подключения, так что программы не должны
явно подключать оба файла. Этот макрос полезен для программ, которые,
например, используют структуры struct timeval или struct
timezone, вместе с struct tm. Этот макрос лучше всего
использовать
вместе с HAVE_SYS_TIME_H, который может быть проверен с помощью
AC_CHECK_HEADERS(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
struct stat содержит поле st_blksize, то определяется
переменная HAVE_ST_BLKSIZE.
struct stat содержит поле st_blocks, то определяется
переменная HAVE_ST_BLOCKS. В противном случае, `fileblocks.o'
добавляется к выходной переменной LIBOBJS.
struct stat содержит поле st_rdev, то определяется
переменная HAVE_ST_RDEV.
struct tm, то определяется
символ TM_IN_SYS_TIME, что означает, что `sys/time.h'
следовало бы определить struct tm.
struct tm
имеет поле tm_zone, то определяется переменная
HAVE_TM_ZONE. В противном случае, если найден внешний массив
tzname, то определяется переменная HAVE_TZNAME.
Go to the first, previous, next, last section, table of contents.