нужно кроссплатформенное решение
От: Alex1000000  
Дата: 27.12.11 16:29
Оценка:
Есть кроссплатформенное приложение (Windows, Linux, MacOS), написанное на с++ с использованием кроссплатформенных библиотек. Приложение состоит из демона/сервиса, ГУИ и инсталлятора. Демон скачивает обновление и должен запустить инсталлятор. Проблема в том как определить запущен ГУИ или нет и как инсталлятору дождаться завершения ГУИ и демона чтобы начать обновление.
Вариант синхронизации через именованные мьютексы руководство отвергло, так как если убить процесс из диспетчера задач, то мьютекс остается.
Вариант с синхронизацией через файлы не получается, т.к. не знаем как выбрать путь для синхрофайла во всех 3-х ОС-ях. В общем случае 3 программы могут быть запущены из разных папок, в т.ч. и с сиди/дивиди.

Вопросы:
1. Как решить проблему с мьютексами?
2. Как выбрать путь для файла из 3-х программ для 3-х ОС и с полномочиями туда писать?
3. Любые другие варианты решений.

Спасибо.
Re: нужно кроссплатформенное решение
От: Pzz Россия https://github.com/alexpevzner
Дата: 27.12.11 19:31
Оценка:
Здравствуйте, Alex1000000, Вы писали:

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


Используйте именованный мьютекс на венде и flock() в маке и линухе.

A>2. Как выбрать путь для файла из 3-х программ для 3-х ОС и с полномочиями туда писать?


/tmp/
Re: нужно кроссплатформенное решение
От: landerhigh Пират  
Дата: 28.12.11 00:54
Оценка: 1 (1) +3
Здравствуйте, Alex1000000, Вы писали:

A>Есть кроссплатформенное приложение (Windows, Linux, MacOS), написанное на с++ с использованием кроссплатформенных библиотек. Приложение состоит из демона/сервиса, ГУИ и инсталлятора. Демон скачивает обновление и должен запустить инсталлятор.


Ох уж эти изобретатели велосипедов. Все неймется переизобрести колесо.

A>3. Любые другие варианты решений.


Используйте стандартные средства ОС. В Windows с этим, понятное дело, несколько кисло, но игнорировать пакетные менеджеры в Linux — это чистой воды садо-мазохизм.
www.blinnov.com
Re: нужно кроссплатформенное решение
От: fdn721  
Дата: 28.12.11 02:40
Оценка: 1 (1) +3 :)
Выкинь своё приложение.

А если серьёзно то в линуксисты не очень любят программы с инсталяторами. И люто ненавидят демоны, которые без ведома качают обновления с интернета.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.