Я использую Qt и bash поверх него, нужно выполнить что-то вроде:
bash: cat file | grep string
в Qt:
QString cmd = "cat file | grep string";
QProcess *process = new QProcess;
process->start(cmd);
process->waitForBytesWritten();
process->waitForFinished();
qDebug() << process->readAll();
Проблема в pipe ( "|" ), и процесс ничего не возвращает. Если нет ( "|" ), например
"cat file"
все в порядке. Я пробовал что-то. как
"cat file \\| grep string",
"cat file \| grep string"
но результат тот же. Если я скопирую команду и запустил ее в bash, все будет в порядке.
QString::toAscii().data()
и другие преобразования также имеют плохой результат.