Я пишу avrdude
вспомогательная программа, которая облегчает вызов нескольких аргументов командной строки. При вводе команд avrdude в консоли серия выводимых результатов будет отображаться на экране. Есть ли какой-нибудь способ получить этот вывод и отобразить его в окне графического интерфейса (используя Qt, если это имеет значение)?
Я подумал, что могу взять вывод и перенаправить его в файл (avrdude -args > textFile.txt
) который может быть прочитан и отображен на экране во время выполнения, если ничего больше.
Просто интересно, есть ли какие-нибудь другие альтернативы для получения этого результата.
Я думаю, что ключевые классы QProcess а также QLabel или некоторый подобный виджет GUI здесь следующим образом:
QProcess avrDudeProcess;
avrDudeProcess.setProcessChannelMode(QProcess::MergedChannels);
avrDudeProcess.start("avrdude", optionList);
if (!avrDudeProcess.waitForStarted())
return false;
if (!avrDudeProcess.waitForFinished())
return false;
QByteArray output = avrDudeProcess.readAll();
myLabel.setText(output);
Может быть, это то, что вы ищете.
http://linux.die.net/man/3/popen
Это пример:
/* First open the command for reading. */
FILE * file = popen("/bin/ls /etc/", "r");
char output[100];
/* Read the output line by line */
while (fgets(output, 100, file) != NULL)
{
printf("%s", output); /* show the result */
}
/* close */
pclose(file);
Удачи!