Я хочу разработать внешний интерфейс Qt для программы, которую также необходимо использовать из командной строки. Сначала я решил решить эту проблему с помощью параметра (если он установлен, то пользовательский интерфейс будет создан, в противном случае просто напишите std::out
), но у меня возникло ощущение, что я должен разделить эти компоненты и просто создайте программу для бэкэнд-логики (используя простой c ++, если это возможно). В этом случае программа Qt может прочитать и понять вывод серверной части. Тем не менее, при необходимости, бэкэнд мог запускаться один, записывая свои результаты на std::out
.
Какой самый элегантный способ вызвать внутреннюю программу из внешнего интерфейса, без блокировки?
Моей первой мыслью по этому поводу было создание дочернего процесса и с помощью exec вызвать бэкэнд, а затем, если бэкэнд закончен, он должен сигнализировать фронтэнд и блокировать, пока фронтенд не завершит чтение, где чтение может быть выполнено через канал или что-то в этом роде.
Это хороший подход? Любые другие советы по реализации?