class — C ++ лучшие практики для запуска других программ из ‘main’

Итак, у меня есть короткая программа, которая должна запустить несколько других программ и ждать их завершения.

В настоящее время я делаю это в моем основном методе, как это:

// Connect to the service
cout << "Starting the service..." << endl;
status = system((SCRIPT_DIR + "/my_service").c_str());
if (WIFEXITED(status)) {
cout << "Started service successfully" << endl;
} else {
cerr << "Failed to start the service." << endl;
return (EXIT_FAILURE);
}

Это выглядит довольно грубо в моем главном, поскольку я должен сделать это несколько раз; это где это должно быть сделано? или я должен разбить его на класс или функцию, чтобы у меня не было всей этой проверки ошибок в main?

Любые другие советы приветствуются!

1

Решение

Синхронный способ состоял бы в том, чтобы запустить службу в функции блокировки и вернуть значение выхода. Один за другим вы запускаете службы и ждете их окончания.

Асинхронный:

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

Кроме того, вы можете использовать fork () и использовать каналы, чтобы отец мог давать команды различным дочерним элементам (запускать разные программы).

0

Другие решения

Вы можете создать поток для каждой «другой программы», которую вы хотите запустить. Однако это может работать только в том случае, если задание каждой «другой программы» не зависит от результатов или переменных других «других программ».

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector