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