C++ 从 'main' 中运行其他程序的最佳实践

C++ best practices for running other programs from within 'main'

本文关键字:最佳 程序 main C++ 运行 其他      更新时间:2023-10-16

所以我有一个短程序,它必须运行其他几个程序并等待它们完成。

目前,我正在我的主方法中执行此操作,如下所示:

// 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中进行所有这些错误检查?

也欢迎任何其他建议!

同步方法是在阻塞函数中启动服务并返回退出值。您一个接一个地启动服务并等待它们完成。

异步:

所有服务都可以并行运行。您可以启动线程并加入它们。因此,当它们完成时,您可以检索退出值。

或者,你可以fork((并使用pipes,让父亲向不同的孩子发出命令(启动不同的程序(

您可以为要运行的每个"其他程序"创建一个线程。但是,仅当每个"其他程序"的作业独立于其他"其他程序"的结果或变量时,这可能才有效