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

на главную - закладки

Жанры

UNIX: взаимодействие процессов

Стивенс Уильям Ричард

Шрифт:

53 };

54 #endif

55 #endif /* HAVE_SYS_SEM_H */

56 #ifdef HAVE_SYS_SHM_H

57 #include <sys/shm.h> /* разделяемая память System V */

58 #endif

59 #ifdef HAVE_SYS_SELECT_H

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

61 #endif

62 #ifdef HAVE_POLL_H

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

64 #endif

65 #ifdef HAVE_STROPTS_H

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

67 #endif

68 #ifdef HAVE_STRINGS_H

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

70 #endif

71 /* Следующие три заголовочных файла нужны для ioctl файлов и сокетов:

72 * <sys/ioctl.h>, <sys/filio.h>, и <sys/sockio.h>.

73 */

74 #ifdef HAVE_SYS_IOCTL_H

75 #include <sys/ioctl.h>

76 #endif

77 #ifdef HAVE_SYS_FILIO_H

78 #include <sys/filio.h>

79 #endif

80 #ifdef HAVE_PTHREAD_H

81 #include <pthread.h>

82 #endif

83 #ifdef HAVE_DOOR_H

84 #include <door.h> /* интерфейс дверей Solaris */

85 #endif

86 #ifdef HAVE_RPC_RPC_H

87 #ifdef _PSX4_NSPACE_H_TS /* баги Digital Unix 4.0b */

88 #undef SUCCESS

89 #endif

90 #include <rpc/rpc.h> /* Sun RPC */

91 #endif

92 /* Определяем bzero как макрос, если его нет в стандартной библиотеке С */

93 #ifndef HAVE_BZERO

94 #define bzero(ptr,n) memset(ptr, 0, n)

95 #endif

96 /* Posix.1g требует, чтобы INFTIM определялось в <poll.h>. но во многих системах эта

97 константа все еще определяется в <sys/stropts.h>. Нам не нужно подключать все

98 функции для работы с потоками, поэтому мы определяем INFTM здесь. Это стандартное

99 значение, но нет гарантий, что оно равно –1 */

100 #ifndef INFTIM

101 #define INFTIM (-1) /* неограниченное время опроса */

102 #ifdef HAVE_POLL_H

103 #define INFTIM_UNPH /* чтобы из файла unpxti.h узнать, что константа определена */

104 #endif

105 #endif

106 /* Прочие константы */

107 #ifndef РАТН_МАХ /* должна быть в <limits.h> */

108 #define PATH_MAX 1024 /* максимальное количество символов в полном имени файла */

109 #endif

110 #define MAX_PATH 1024

111 #define MAXLINE 4096 /* максимальная длина строки */

112 #define BUFFSI2E 8192 /* объем буфера чтения и записи */

113 #define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)

114 /* разрешения по умолчанию для новых файлов */

115 #define DIR_MODE (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)

116 /* разрешения по умолчанию для новых каталогов */

117 #define SVMSG_MODE (MSG_R | MSG_W | MSG_R>>3 | MSG_R>>6)

118 /* разрешения по умолчанию для новых очередей сообщений System V */

119 #define SVSEM_MODE (SEM_R | SEM_A | SEM_R>>3 | SEM_R>>6)

120 /* разрешения по умолчанию для новых семафоров System V */

121 #define SVSHM_MODE (SHM_R | SHM_W | SHM_R>>3 | SHM_R>>6)

122 /* разрешения по умолчанию для новой разделяемой памяти System V */

123 typedef void Sigfunc(int); /* для обработчиков сигналов */

124 #ifdef HAVE_SIGINFO_T_STRUCT

125 typedef void Sigfunc_rt(int, siginfo_t*, void*);

126 #endif

127 #define min(a,b) ((a) < (b) ? (a) : (b))

128 #define max(a,b) ((a) > (b) ? (a) : (b))

129 #ifndef HAVE_TIMESPEC_STRUCT

130 struct timespec {

131 time_t tv_sec; /* секунды */

132 long tv_nsec; /* и наносекунды */

133 };

134 #endif

135 /*

136 В функциях-обертках open, mq_open, sem_open мы обрабатываем

137 дополнительные аргументы с помощью макросов va_XXX.

138 Один из аргументов имеет тип mode_t, что приводит

139 к ошибке в BSD/OS, где для этого типа используются

140 16-разрядные целые. При вызове обертки

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

Паразиты

дю Морье Дафна
Проза:
современная проза
6.20
рейтинг книги
Паразиты

Подросток

Достоевский Федор Михайлович
Проза:
русская классическая проза
9.09
рейтинг книги
Подросток

Менталист. Эмансипация

Еслер Андрей
1. Выиграть у времени
Фантастика:
альтернативная история
7.52
рейтинг книги
Менталист. Эмансипация

Третий. Том 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 4

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Личный аптекарь императора

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

Хозяин Теней 4

Петров Максим Николаевич
4. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 4

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7

Черный Маг Императора 12

Герда Александр
12. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 12

Звездная Кровь. Экзарх III

Рокотов Алексей
3. Экзарх
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Экзарх III

Эволюционер из трущоб. Том 11

Панарин Антон
11. Эволюционер из трущоб
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Эволюционер из трущоб. Том 11

Око василиска

Кас Маркус
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Око василиска

Князь Медведев. Дилогия

Вяч Павел
Медведев
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Князь Медведев. Дилогия

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25