Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Выполнение bash команд в программной среде Qt

Автор: neneTc 10.4.2010, 8:39

Здравствуйте. Как выполнить команду bash из Qt?

Автор: DEADHUNT 10.4.2010, 8:50

лучше через C RTL:

#include <cstdlib>
system("your command");

Автор: neneTc 10.4.2010, 8:53

Работает! Большое спасибо!

Автор: maint 10.4.2010, 12:32

можно еще что то вроде

shell = getenv("SHELL");
cmd = "любая программа или скрипт";
if (shell == NULL)
shell = "/bin/sh";

if ((pid = fork()) == 0) {
if ((pid = fork()) == 0) {
execl(shell, "как обзывать будем", "-ec", cmd, (char *) 0);
диагностика;
}
if (pid < 0) {
диагностика
exit(1);
}
}
так будет полный контроль

Автор: Litkevich Yuriy 10.4.2010, 13:12

Цитата(DEADHUNT @ 10.4.2010, 12:50) *
лучше через C RTL:
а почему не через QProcess?

Автор: DEADHUNT 10.4.2010, 14:07

Цитата(Litkevich Yuriy @ 10.4.2010, 14:12) *
а почему не через QProcess?

а зачем использовать Qt где можно его не использовать? тем более использование QProcess более сложное + надо будет править для каждой ОС(например cmd или bash). мне например в Qt ещё не нравится что у них везде QString, лучше бы пошли по пути boost и использовали бы std::string(и прочие стандартные для C/C++ типы).

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)