Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
ClO_own
0 / 0 / 0
Регистрация: 15.04.2012
Сообщений: 7
21.04.2012, 15:00     Наследование дескриптора семафора другими процессами #1
Доброго времени суток, проблема в следующем: пишу приложение, которое использует семафоры. Мне нужно, чтобы дескриптор семафора мог наследоваться другими процессами, т.е если я 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;
Перерыл мсдн, но проблема не решилась.. Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
21.04.2012, 15:48     Наследование дескриптора семафора другими процессами #2
Clwn, а в чем проблема? вы хотите чтобы семафором могли пользоваться только ваши приложения?
если не заострять внимание на паранойе - то просто создаете именованный семафор
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 позволяет использовать дескритор другим процессам.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
21.04.2012, 16:15     Наследование дескриптора семафора другими процессами #4
Clwn, зачем вам такой же дескриптор (в смысле значения)? именованный семафор можно открыть по его имени (OpenSemaphore)
в этом случае две копии программы будут работать с одним и тем же семафором

хотя в OpenSemaphore есть какието параметры, смысл которых мне сразу так в голову не приходит - можно рихтера посмотреть
Yandex
Объявления
21.04.2012, 16:15     Наследование дескриптора семафора другими процессами
Ответ Создать тему
Опции темы

Текущее время: 22:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru