Russian Qt Forum

Qt => Общие вопросы => Тема начата: merke от Ноябрь 26, 2010, 08:20



Название: Вопрос по QProcess
Отправлено: merke от Ноябрь 26, 2010, 08:20
Всем привет!

В чем отличие между:

startDetached();
start();
execute();

 ???


Название: Re: Вопрос по QProcess
Отправлено: BRE от Ноябрь 26, 2010, 08:25
 ::)
А что написано в документации?


Название: Re: Вопрос по QProcess
Отправлено: merke от Ноябрь 26, 2010, 08:31
Документацию я читал! ;D

Только вот можно нашим великим русским языком всё это объяснить?)

Потому что в документации везде написано что создается новый процесс, так и ежу понятно что создается новый процесс.)


Название: Re: Вопрос по QProcess
Отправлено: BRE от Ноябрь 26, 2010, 08:36
Я тебе ключевые моменты выделил.  :)

bool QProcess::startDetached ( const QString & program, const QStringList & arguments ) [static]
Starts the program program with the given arguments in a new process, and detaches from it. Returns true on success; otherwise returns false. If the calling process exits, the detached process will continue to live.

void QProcess::start ( const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite )
Starts the given program in a new process, if none is already running, passing the command line arguments in arguments. The OpenMode is set to mode.
The QProcess object will immediately enter the Starting state. If the process starts successfully, QProcess will emit started(); otherwise, error() will be emitted. If the QProcess object is already running a process, a warning may be printed at the console, and the existing process will continue running.

int QProcess::execute ( const QString & program, const QStringList & arguments ) [static]
Starts the program program with the arguments arguments in a new process, waits for it to finish, and then returns the exit code of the process. Any data the new process writes to the console is forwarded to the calling process.


Название: Re: Вопрос по QProcess
Отправлено: merke от Ноябрь 26, 2010, 08:47
Т.е. если мне надо запустить процесс и пофиг что с ним будет в дальнейшем то выбираю startDetached() И даже если родитель будет убит процесс будет жить своей жизнью. Хорошо как раз что мне нужно.

Теперь если мне нужно запустить процесс и дождаться его завершения дабы получить код завершения то я использую либо start() или execute() И я так понимаю если родитель будет убит то и стартованные процессы также будут убиты?


Название: Re: Вопрос по QProcess
Отправлено: BRE от Ноябрь 26, 2010, 09:03
Один из плюсов программирование в том, что тебе не нужно делать сложных утомительных действий, что бы проверить интересующую тебя вещь. Можно быстро набросать небольшой пример и попробовать все в действии, поэкспериментировать с этим кодом, .... Тебе это не интересно? ;)


Название: Re: Вопрос по QProcess
Отправлено: merke от Ноябрь 26, 2010, 09:29
в точности так и делаю в большинстве случаев ;) просто люблю задавать вопросы)))