ifconfig | grep 'inet'
działa po uruchomieniu przez terminal. Ale nie poprzez QProcessPolecenie działające w terminalu, ale nie za pośrednictwem QProcess
Mój przykładowy kod jest
QProcess p1;
p1.start("ifconfig | grep 'inet'");
p1.waitForFinished();
QString output(p1.readAllStandardOutput());
textEdit->setText(output);
Nic nie jest wyświetlane na uzyskiwanie TextEdit.
ale kiedy używam tylko ifconfig
na początku qprocess, dane wyjściowe są wyświetlane na textedit. Czy brakowało mi jakiejś sztuczki do skonstruowania polecenia ifconfig | grep 'inet'
, jak użycie \'
dla '
i \|
dla |
? dla znaków specjalnych? ale starałem się, że dobrze :(
Musisz podać pełną ścieżkę dla ifconifg. Twoja aplikacja ma inną zmienną PATH niż terminal –
@KamilKlimek Ponieważ może to być problemem dla pojedynczych poleceń, w tym przypadku problemem jest piping poleceń (który nie jest obsługiwany przez QProcess). – leemes
Dobrze! totalnie zapomniałem o tym –