Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Есть ли в Windows аналог сигналов UNIX?


Автор: phprus 19.8.2011, 09:06
Доброго времени суток!

Подскажите пожалуйста, есть ли в Windows аналоги сигналов UNIX?
Под аналогами понимается более полноценное решение, чем функция signal() из CRT, из сигналов которой по сути только SIGINT можно по назначению использовать.

Автор: spyswamp 19.8.2011, 11:11
Прям чтобы с любым приложением работать определенным набором команд (сигналов) - скорее всего, нету. А так SendMessage()/PostMessage(). Только главное знать что посылать и кому.

Автор: phprus 19.8.2011, 11:44
Цитата(spyswamp @  19.8.2011,  14:11 Найти цитируемый пост)
А так SendMessage()/PostMessage(). Только главное знать что посылать и кому. 

А для приложений у которых нет окон или консольных есть аналоги?

Я хочу портировать обмен командами между двумя приложениями, а так-как набор команд строго ограничен, то Linux версия использует сигналы.

Автор: Alca 19.8.2011, 12:57
Цитата

А для приложений у которых нет окон или консольных есть аналоги?

можно создать невидимое

Добавлено через 2 минуты и 8 секунд
Цитата

Я хочу портировать обмен командами между двумя приложениями

http://frolov-lib.ru/books/bsp/v27/ch2.htm

Автор: spyswamp 19.8.2011, 13:01
http://msdn.microsoft.com/en-us/library/Aa365574

Автор: GremlinProg 19.8.2011, 13:05
Цитата(phprus @  19.8.2011,  13:44 Найти цитируемый пост)
А для приложений у которых нет окон или консольных есть аналоги?

http://msdn.microsoft.com/en-us/library/ms644946(v=vs.85).aspx
нужно только цикл обработки сообщений организовать с обоих сторон (если нужен двусторонний обмен)

Автор: spyswamp 19.8.2011, 13:06
Alca, можно и собаке пятую ногу пришить. smile Но есть же PostThreadMessage ( http://simplesamples.info/Windows/PostThreadMessage.php ), которую можно заставить работать между разными процессами.

Добавлено через 37 секунд
GremlinProg,  smile меня уже дважды опередили пока дописки делал. :(

Добавлено через 4 минуты и 20 секунд
Кстати, вот и небольшая дискуссия по поводу PostThreadMessage: http://www.codeproject.com/Messages/3433890/Re-Can-PostThreadMessage-Post-to-a-Thread-in-a-Dif.aspx (годные ответы отмечены галочками).

Автор: Alca 19.8.2011, 13:32
Чего-то я всегда думал, что PostThreadMessage только для потоков одного процесса

Автор: phprus 19.8.2011, 15:11
Цитата(Alca @  19.8.2011,  15:57 Найти цитируемый пост)
можно создать невидимое

Из пушки по воробьям. smile

Цитата(Alca @  19.8.2011,  15:57 Найти цитируемый пост)

> Я хочу портировать обмен командами между двумя приложениями
http://frolov-lib.ru/books/bsp/v27/ch2.htm

Мне не нужен полноценный IPC. Для решаемой задачи большинство методов IPC будут слишком громоздкими.
Но за ссылку спасибо, так как именованные pipe в этом случае действительно можно использовать, а я забыл, что в отличие от Linux не придется думать, где в файловой системе их хранить.

GremlinProg,  spyswamp
Спасибо за ссылку на PostThreadMessage, посмотрю на ее возможности.

Автор: bems 2.9.2011, 13:32
Цитата(Alca @  19.8.2011,  13:32 Найти цитируемый пост)
Чего-то я всегда думал, что PostThreadMessage только для потоков одного процесса 
нет, но не у всех потоков есть очередь сообщений

Добавлено через 2 минуты и 44 секунды
Цитата(phprus @  19.8.2011,  11:44 Найти цитируемый пост)
Я хочу портировать обмен командами между двумя приложениями,
named pipes, mailslots, сокеты

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)