Если вы используете qt для разработки своего кода, вы обнаружите, что QProcess позволит вам запускать программу командной строки независимо от платформы.
По существу:
QObject *parent;
QString program = "yourcommandlineprogram";
QStringList arguments;
QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);
Затем вы можете читать из процесса с помощью различных вызовов функций, таких как readAllStandardOutput (), и записывать на вход процесса с помощью QProcess :: write (QString).
В качестве альтернативы, если вы предпочитаете Boost вместо Qt, Boost.Process также позволит вам запускать процессы. Признаюсь, мне не очень нравится синтаксис ...
boost::process::command_line cl("yourcommandlineprogram");
cl.argument("someargument");
boost::process::launcher l;
l.set_stdout_behavior(bp::redirect_stream);
l.set_merge_out_err(true);
l.set_work_directory(dir);
boost::process::child c = l.start(cl);
Затем вы можете работать со своим подпроцессом 'c', используя потоковые операторы << и >> для чтения и записи.