Чтение онлайн

на главную

Жанры

UNIX: разработка сетевых приложений
Шрифт:

Листинг Г.1. Заголовочный файл unp.h

//lib/unp.h

1 /* Наш собственный заголовочный файл */

2 #ifndef __unp_h

3 #define __unp_h

4 #include "../config.h" /* параметры конфигурации для данной ОС */

5 /* "../config.h" генерируется сценарием configure */

6 /*
изменив список директив #include,

7 нужно также изменить файл acsite.m4 */

8 #include <sys/types.h> /* основные системные типы данных */

9 #include <sys/socket.h> /* основные определения сокетов */

10 #include <sys/time.h> /* структура timeval{} для функции select */

11 #include <time.h> /* структура timespec{} для функции pselect */

12 #include <netinet/in.h> /* структура sockaddr_in{} и другие сетевые

определения */

13 #include <arpa/inet.h> /* inet(3) функции */

14 #include <errno.h>

15 #include <fcntl.h> /* для неблокируемых сокетов */

16 #include <netdb.h>

17 #include <signal.h>

18 #include <stdio.h>

19 #include <stdlib.h>

20 #include <string.h>

21 #include <sys/stat.h> /* для констант S_xxx */

22 #include <sys/uio.h> /* для структуры iovec{} и ready/writev */

23 #include <unistd.h>

24 #include <sys/wait.h>

25 #include <sys/un.h> /* для доменных сокетов Unix */

26 #ifdef HAVE_SYS_SELECT_H

27 #include <sys/select.h> /* для удобства */

28 #endif

29 #ifdef HAVE_SYS_SYSCTL_H

30 #include <sys/sysctl.h>

31 #endif

32 #ifdef HAVE_POLL_H

33 #include <poll.h> /* для удобства */

34 #endif

35 #ifdef HAVE_SYS_EVENT_H

36 #include <sys/event.h> /*
для kqueue */

37 #endif

38 #ifdef HAVE_STRINGS_H

39 #include <strings.h> /* для удобства */

40 #endif

41 /* Три заголовочных файла обычно нужны для вызова ioctl

42 для сокета/файла: <sys/ioctl.h>, <sys/filio.h>,

43 <sys/sockio.h> */

44 #ifdef HAVE_SYS_IOCTL_H

45 #include <sys/ioctl.h>

46 #endif

47 #ifdef HAVE_SYS_FILIO_H

48 #include <sys/filio.h>

49 #endif

50 #ifdef HAVE_SYS_SOCKIO_H

51 #include <sys/sockio.h>

52 #endif

53 #ifdef HAVE_PTHREAD_H

54 #include <pthread.h>

55 #endif

56 #ifdef HAVE_NET_IF_DL_H

57 #include <net/if_dl.h>

58 #endif

59 #ifdef HAVE_NETINET_SCTP_H

60 #include <netinet/sctp.h>

61 #endif

62 /* OSF/1 фактически запрещает recv и send в <sys/socket.h> */

63 #ifdef __osf__

64 #undef recv

65 #undef send

66 #define recv(a,b,c,d) recvfrom(a,b,c,d,0,0)

67 #define send(a,b,c,d) sendto(a,b,c,d,0,0)

68 #endif

69 #ifndef INADDR_NONE

70 #define INADDR_NONE 0xffffffff /* должно было быть в <netinet/in.h> */

71 #endif

72 #ifndef SHUT_RD /* три новые константы Posix.1g */

73 #define SHUT_RD 0 /* отключение чтения */

Поделиться:
Популярные книги

Леди Малиновой пустоши

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Леди Малиновой пустоши

Ст. сержант. Назад в СССР. Книга 5

Гаусс Максим
5. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ст. сержант. Назад в СССР. Книга 5

Империя на краю

Тамбовский Сергей
1. Империя у края
Фантастика:
альтернативная история
5.00
рейтинг книги
Империя на краю

На Ларэде

Кронос Александр
3. Лэрн
Фантастика:
фэнтези
героическая фантастика
стимпанк
5.00
рейтинг книги
На Ларэде

Последняя Арена 8

Греков Сергей
8. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 8

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Кровавые обещания

Мид Райчел
4. Академия вампиров
Фантастика:
ужасы и мистика
9.47
рейтинг книги
Кровавые обещания

Возвращение Безумного Бога

Тесленок Кирилл Геннадьевич
1. Возвращение Безумного Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвращение Безумного Бога

Любовь Носорога

Зайцева Мария
Любовные романы:
современные любовные романы
9.11
рейтинг книги
Любовь Носорога

Последняя Арена 5

Греков Сергей
5. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 5

Аватар

Жгулёв Пётр Николаевич
6. Real-Rpg
Фантастика:
боевая фантастика
5.33
рейтинг книги
Аватар

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия