Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
ClO_own
0 / 0 / 0
Регистрация: 15.04.2012
Сообщений: 7
1

Наследование дескриптора семафора другими процессами

21.04.2012, 15:00. Просмотров 726. Ответов 3
Метки нет (Все метки)

Доброго времени суток, проблема в следующем: пишу приложение, которое использует семафоры. Мне нужно, чтобы дескриптор семафора мог наследоваться другими процессами, т.е если я 1 раз создал семафор в программе и не убил его, то при открытии другой копии этой программы она могла получить доступ к уже созданному семафору.
C
1
2
3
4
5
6
HANDLE WINAPI CreateSemaphore(
  __in_opt  LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
  __in      LONG lInitialCount,
  __in      LONG lMaximumCount,
  __in_opt  LPCTSTR lpName
);
Не знаю как в атрибутах задать наследование дескритора из структуры _SECURITY_ATTRIBUTES

C
1
2
3
4
5
typedef struct _SECURITY_ATTRIBUTES {
  DWORD  nLength;
  LPVOID lpSecurityDescriptor;
  BOOL   bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
Перерыл мсдн, но проблема не решилась.. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2012, 15:00
Ответы с готовыми решениями:

Работа семафора в разных процессах
Процессы: Reder и несколько Sender'ов Собственно, есть семафор который...

Как заблокировать выполнение процесса с помощью semop, пока значение семафора не равно 1
Как заблокировать выполнение процесса с помощью semop, пока значение семафора...

Как по требованию вызвать дескриптора объекта?
Здрасти! Подскажите пожалуйста, как вызвать дескриптор объекта myCar до...

Заменить наследование классов на наследование интерфейсов
#include <iostream> #include <assert.h> using namespace std; int...

Передача дескриптора текущего процесса через mailslot
Пытаюсь передать дескриптор текущего процесса и его ID через mailslot. ID...

3
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
21.04.2012, 15:48 2
Clwn, а в чем проблема? вы хотите чтобы семафором могли пользоваться только ваши приложения?
если не заострять внимание на паранойе - то просто создаете именованный семафор
0
ClO_own
0 / 0 / 0
Регистрация: 15.04.2012
Сообщений: 7
21.04.2012, 15:57  [ТС] 3
проблема в том, что если просто создать семафор
C
1
CreateSemaphore(NULL, 1, 127, "BlockForReading")
то при открытии другой копии приложения эта копия не видит дескриптор уже существующего семафора.

как я понял именно в
C
1
BOOL   bInheritHandle;
лежит решение, т.к значение TRUE позволяет использовать дескритор другим процессам.
0
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
21.04.2012, 16:15 4
Clwn, зачем вам такой же дескриптор (в смысле значения)? именованный семафор можно открыть по его имени (OpenSemaphore)
в этом случае две копии программы будут работать с одним и тем же семафором

хотя в OpenSemaphore есть какието параметры, смысл которых мне сразу так в голову не приходит - можно рихтера посмотреть
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 16:15

Синхронизация с другими процессами Win32
Есть DLL под Win32, обслуживающая аппаратное устройство и её описание. Она...

Связать программу с другими процессами на компьютере
Всем доброго времени суток, делаю подобную программу впервые. Это некая...

Программа управляющая другими программами и процессами?
У меня такая проблема: мне нужно чтобы каждый день, автоматически закрывался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru