Esempio n. 1
0
int main(int argc, char *argv[])
{
    std::vector<std::string> args;
    Subprocess proc = Subprocess(args);
    proc.run();
    for (int i = 0; i < 20; ++i)
        proc.poll();
    return 0;
}
Esempio n. 2
0
/** Runs the process and waits until it's finished.
 *  @param[out] out takes the output written to stdout by the executed subprocess
 *  @return true if process terminated properly
 *  @throw SignalException if CTRL-C was pressed during execution */
bool Process::run (string *out) {
	Subprocess subprocess;
	if (!subprocess.run(_cmd, _paramstr))
		return false;
	for (;;) {
		if (out) {
			out->clear();
			subprocess.readFromPipe(*out);
		}
		Subprocess::State state = subprocess.state();
		if (state != Subprocess::State::RUNNING)
			return state == Subprocess::State::FINISHED;
		SignalHandler::instance().check();
	}
}