从'main'

时间:2018-06-13 11:29:58

标签: c++ class main error-checking

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

目前我在我的主要方法中这样做:

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

欢迎任何其他建议!

2 个答案:

答案 0 :(得分:0)

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

异步:

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

或者,你可以fork()并使用管道让父亲给各个孩子发出命令(启动不同的程序)

答案 1 :(得分:0)

您可以为要运行的每个“其他程序”创建一个主题。但是,这可能只有在每个“其他程序”的工作独立于其他“其他程序”的结果或变量时才有效