|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.06.2013, 20:34 | #1 |
Пользователь
Регистрация: 09.06.2012
Сообщений: 32
|
Семафоры для межпрограммного взаимодействия
Здравствуйте, уважаемые форумчане.
Передо мной стоит следующая задача: Первая программа формирует специальный пакет и отправляет его по сети не важно куда. Вторая программа должна в процессе выполнения первой менять содержимое пакета первой программы по моему запросу. Решил воспользоваться shmget для использования общей памяти, а для синхронизации программ(потоков(процессов)) semget семафорами. С последними не могу разобраться. Хочу реализовать следующую логику: Запускается первая программа, формируется пакет, создается общий семафор с изначальным положительным значением и начинается циклическая отправка пакета. В это время я запуская вторую программу, ставлю семафор в отрицательное значение(первая программа останавливается) и меняю содержимое пакета из общей с первой программой памяти. После этого переключаю семафор на положительное значение и первая программа продолжает передачу пакета. Вот примерный код для семафора в первой программе: Код:
Код:
Я создаю семафор именно для процесса первой программы и остановится именно она? Ещё вопрос про 2 семафора. Если я создам 2 семафора, то как привязать конкретный семафор к конкретной программе? Как это указывается в коде? Заранее благодарен. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Семафоры - как с ними работать? | Mixim | Общие вопросы .NET | 2 | 22.10.2012 15:49 |
Вывол таблицы умножения. Семафоры [Delphi] | StudeHt | Помощь студентам | 0 | 27.12.2011 20:15 |
Обмен данными между процессами. Но вопрос по семафоры :) | RAZOR1703 | Win Api | 8 | 28.11.2011 21:37 |
Семафоры, философы. | kir_rik | Помощь студентам | 0 | 12.04.2010 14:17 |
семафоры на С | Raptor | Помощь студентам | 1 | 26.04.2008 18:30 |