104 макрос ALIGN(), но это зависит от реализации */
105 #ifndef CMSG_LEN
106 #define CMSG_LEN(size) (sizeof(struct cmsghdr) + (size))
107 #endif
108 #ifndef CMSG_SPACE
109 #define CMSG_SPACE(size) (sizeof(struct cmsghdr) + (size))
110 #endif
111 /* POSIX требует макрос SUN_LEN(), но он определен
112 не во всех реализациях. Этот макрос 4.4BSD работает
123 независимо от того, имеется ли поле длины */
114 #ifndef SUN_LEN
115 #define SUN_LEN(su) \
116 (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
117 #endif
118 /* В POSIX "домен Unix" называется "локальным IPC".
119 Но пока не во всех системах определены AF_LOCAL и PF_LOCAL */
120 #ifndef AF_LOCAL
121 #define AF_LOCAL AF_UNIX
122 #endif
123 #ifndef PF_LOCAL
124 #define PF_LOCAL PF_UNIX
125 #endif
126 /* POSIX требует определения константы INFTIM в
127 системах она по-прежнему определяется в
128 не подключать все функции работы с потоками, определяем ее здесь.
129 Это стандартное значение, но нет гарантии, что оно равно -1 */
130 #ifndef INFTIM
131 #define INFTIM (-1) /* бесконечный тайм-аут */
132 #ifdef HAVE_POLL_H
133 #define INFTIM_UNPH /* надо указать в unpxti.h, что эта константа
определена здесь */
134 #endif
135 #endif
136 /* Это значение можно было бы извлечь из SOMAXCONN в
137 но многие ядра по-прежнему определяют его как 5,
хотя на самом деле поддерживается гораздо больше */
138 #define LISTENQ 1024 /* второй аргумент функции listen() */
139 /* Различные константы */
140 #define MAXLINE 4096 /* максимальная длина текстовой строки */
141 #define BUFFSIZE 8192 /* размер буфера для чтения и записи */
142 /* Определение номера порта, который может быть использован для
взаимодействия клиент-сервер */
143 #define SERV_PORT 9877 /* клиенты и серверы TCP и UDP */
144 #define SERV_PORT_STR "9877" /* клиенты и серверы TCP и UDP */
145 #define UNIXSTR_PATH "/tmp/unix.str" /* потоковые клиенты и серверы
домена Unix */
146 #define UNIXDG_PATH "/tmp/unix.dg" /* клиенты и серверы протокола
дейтаграмм домена Unix */
147 /* Дальнейшие определения сокращают преобразования типов
аргументов-указателей */
148 #define SA struct sockaddr
149 #define HAVE_STRUCT_SOCKADDR_STORAGE
150 #ifndef HAVE_STRUCT_SOCKADDR_STORAGE
151 /*
152 * RFC 3493: протокольно-независимая структура адреса сокета
153 */
154 #define __SS_MAXSIZE 128
155 #define __SS_ALIGNSIZE (sizeof(int64_t))
156 #ifndef HAVE_SOCKADDR_SA_LEN
157 #define __SS_PADS1SIZE (__SS_ALIGNSIZE - sizeof(u_char) -
sizeof(sa_family_t))
158 #else
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии