Използвам 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