Пример кода
int main(int, char * argv[]) {
QString input = QTextStream(stdin).readLine();
QTextStream(stdout) << input << "\nWe need to go deeper...\n";
return QProcess::execute(argv[0]);
}
Тестовый забег
./test
level 1<Enter>
level 1
We need to go deeper...
level 2<Enter>
и ничего не происходит...
PS. system() работает, но потребует написания кода для правильного экранирования аргументов командной строки.