Russian Qt Forum
Ноябрь 27, 2024, 02:41
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
кроссплатформенный fork() в Qt?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: кроссплатформенный fork() в Qt? (Прочитано 7613 раз)
Павел_F.
Гость
кроссплатформенный fork() в Qt?
«
:
Март 24, 2010, 10:25 »
Переделываю прогу. Изначально она на с++ под Linux. Цель моя переделать ее на кроссплатформенное Qt. В коде постоянно встречаются такие куски:
Код
C++ (Qt)
if
(
fork
(
)
==
0
)
{
...
...
...
}
else
{
...
...
...
}
Чем заменить? Никак не соображу...
Записан
BRE
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #1 :
Март 24, 2010, 11:05 »
Ничем, не на всех платформах есть подобный системный вызов.
Тут нужно смотреть по логике работы программы, для чего она форкается и что делает после этого.
Записан
Павел_F.
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #2 :
Март 24, 2010, 11:14 »
Я знаю что не у всех есть. Это сервер. После форка один продолжает ждать новых клиентов, а в другом начинается обмен с подключившимся. Можно переделать на потоки, а не процессы... Но в этом еще нужно убедить заказчика, а это не просто. Просто смотрю в сторону QProcess и теплится надежда...
Записан
p166
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #3 :
Март 25, 2010, 09:49 »
Fork делает копию памяти процесса и оставляет его жить собственной жизнью
без какой либо связи
с головным приложением, такая функция существует
только
в Linux! В случае кроссплатформенного решения тут поможет только полная переделка на потоки, хотя это и не обеспечит прежней логики, работать будет, но, повторюсь, потребуется довольно большая переделка всего приложения.
А заказчику нужно сказать, что в связи с ограничением других ОС, необходимо пределать на потоки, или пусть забудет про кроссплатформенность.
«
Последнее редактирование: Март 25, 2010, 09:53 от p166
»
Записан
Павел_F.
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #4 :
Март 25, 2010, 09:59 »
Это я знаю.
Хотя всегда думал что fork() в POSIX есть, не только в Linux. Уже переделываю на потоки.
Записан
gigabyte
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #5 :
Март 25, 2010, 11:15 »
Если будети время взгляни на Firebird Classic Server там что-то подобное сделано т.е. сидит один "смотрящий" сервер и при поступлении конектор запускает свои же копии которые уже их и обрабатывают. Єто под виндой тоже работает
Записан
Павел_F.
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #6 :
Март 25, 2010, 11:21 »
Тут такой момент что сделать с нуля и переделать то что есть это разные вещи. Так сделать можно. Но это нужно изначально учитывать еще до написания кода. У меня же все уже сделано да не так. И хочется переделать с минимальными потерями а не написать такой же но другой с нуля.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: кроссплатформенный fork() в Qt?
«
Ответ #7 :
Март 25, 2010, 11:24 »
PostgreSQL тоже делает по экземпляру на клиента.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
gigabyte
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #8 :
Март 25, 2010, 12:07 »
Вывод?
Кросплатформенный fork() - есть. может не в том смысле как в Linux то он есть.
Записан
Rcus
Гость
Re: кроссплатформенный fork() в Qt?
«
Ответ #9 :
Март 25, 2010, 12:09 »
В Cygwin есть эмуляция fork(), но после чтения того как это делается желание использовать отпадает.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...