Читаем UNIX: разработка сетевых приложений полностью

17 /* Определены, если имеются соответствующие функции */

18 #define HAVE_BZERO 1

19 #define HAVE_GETHOSTBYNAME2 1

20 /* #undef HAVE_PSELECT */

21 #define HAVE_VSNPRINTF 1

22 /* Определены, если прототипы функций есть в заголовочном файле */

23 /* #undef HAVE_GETADDRINFO_PROTO */    /* */

24 /* #undef HAVE_GETNAMEINFO_PROTO */    /* */

25 #define HAVE_GETHOSTNAME_PROTO 1       /* */

26 #define HAVE_GETRUSAGE_PROTO 1         /* */

27 #define HAVE_HSTRERROR_PROTO 1         /* */

28 /* #undef HAVE_IF_NAMETOINDEX_PROTO */ /* */

29 #define HAVE_INET_ATON_PROTO 1         /* */

30 #define HAVE_INET_PTON_PROTO 1         /* */

31 /* #undef HAVE_ISFDTYPE_PROTO */       /* */

32 /* #undef HAVE_PSELECT_PROTO */        /* */

33 #define HAVE_SNPRINTF_PROTO 1          /* */

34 /* #undef HAVE_SOCKATMARK_PROTO */     /* */

35 /* Определены, если определены соответствующие структуры */

36 /* #undef HAVE_ADDRINFO_STRUCT */     /* */

37 /* #undef HAVE_IF_NAMEINDEX_STRUCT */ /* */

38 #define HAVE_SOCKADDR_DL_STRUCT 1     /* */

39 #define HAVE TIMESPEC STRUCT 1        /* */

40 /* Определены, если имеется указанное свойство */

41 #define HAVE_SOCKADDR_SA_LEN 1    /* в sockaddr{} есть поле sa_len */

42 #define HAVE_MSGHDR_MSG_CONTROL 1 /* в msghdr{} есть поле msg_control */

43 /* Имена устройств XTI для TCP и UDP */

44 /* #undef HAVE_DEV_TCP */               /* большинство здесь */

45 /* #undef HAVE_DEV_XTI_TCP */           /* для AIX */

46 /* #undef HAVE_DEV_STREAMS_XTISO_TCP */ /* для OSF 3.2 */

47 /* При необходимости определяем типы данных */

48 /* #undef int8_t */             /* */

49 /* #undef int16_t */            /* */

50 /* #undef int32_t */            /* */

51 #define uint8_t unsigned char   /* */

52 #define uint16_t unsigned short /* */

53 #define uint32_t unsigned int   /* */

54 /* #undef size_t */             /* */

55 /* #undef ssize_t */            /* */

56 /* socklen_t должен иметь тип uint32_t, но configure определяет его

57    как unsigned int. т. к. это значение используется в начале компиляции.

58    иногда до того, как в данной реализации определяется тип uint32_t */

59 #define socklen_t unsigned int  /* */

60 #define sa_family_t SA_FAMILY_T /* */

61 #define SA_FAMILY_T uint8_t

62 #define t_scalar_t int32_t /* */

63 #define t_uscalar_t uint32_t /* */

64 /* Определены, если система поддерживает указанное свойство */

65 #define IPV4 1       /* IPv4, V в верхнем регистре */

66 #define IPv4 1       /* IPv4, v в нижнем регистре, на всякий случай */

67 /* #undef IPV6 */    /* IPv6, V в верхнем регистре */

Перейти на страницу:

Все книги серии Мастер-класс

Секреты резьбы по дереву
Секреты резьбы по дереву

Изделия из древесины и материалов, имитирующих ее текстуру, привычным образом окружают нас в повседневной жизни, поэтому мы относимся к ней как к чему-то обыденному. Но как только ее коснется умелая рука мастера резьбы по дереву, рождается произведение искусства и раскрываются такие качества древесины, как богатая фактура, разнообразие цветов, особая теплота. Эта книга поможет читателю открыть для себя удивительный мир творчества и познать секреты резьбы по дереву. Автор надеется, что начинающие резчики найдут в ней интересный и полезный материал, который позволит им стать мастерами. В приложении представлены рисунки орнаментов и различных узоров, которые на первых порах можно копировать, а по мере приобретения навыка на их основе разрабатывать свои образцы.

Галина Алексеевна Серикова

Сделай сам / Хобби и ремесла / Руководства / Дом и досуг / Словари и Энциклопедии

Похожие книги