On Sun, 13 Feb 2000, Tobias König wrote:
Hallo,
Ich habe das mit KProcess ausprobiert, komme aber nicht weiter... Der Codeauszug lautet:
#include "KHtml.h" #include "KHtml.moc" #include <kprocess.h> #include <kapp.h> #include <iostream.h>
KHtmlWidget::KHtmlWidget() { KProcess proc;
proc << "ls" << "-l" << "/home"; // bei 'ls' müßte eine Ausgabe erfolgen proc.start(KProcess::NotifyOnExit, KProcess::AllOutput); connect(&proc, SIGNAL(receivedStderr(KProcess *, char *, int)), this, SLOT(getErrors(KProcess *, char *, int))); connect(&proc, SIGNAL(receivedStdout(KProcess *, char *, int)), this, SLOT(getErrors(KProcess *, char *, int)));
}
void KHtmlWidget::getErrors(KProcess *proc, char *buffer, int length) { cout << buffer << "\n"; printf("Hallo Welt\n"); } ...
(Laßt euch durch das KHtmlWidget nicht stören :))
Nur schreibt das Programm weder <buffer> noch "Hallo Welt", also wird die Funktion getErrors() gar erst nicht ausgeführt... Warum???
Du solltest mal die connect's vor das proc.start stellen, ls auf /home hat die dumme Angewohnheit schnell vorbei zu sein. Die Signale von proc verschwinden also im Nirvana, da sie nicht rechtzeitig abgefangen werden.
Konrad