Russian Qt Forum
Ноябрь 24, 2024, 19:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QProcess::isRunning ()  (Прочитано 4800 раз)
cresta
Гость
« : Июль 05, 2007, 01:52 »

В чем смысл QProcess::isRunning ()Непонимающий

Как можно воспользоваться этим для опеределения завершенности процесса?
Если процесс завершен, возникает segmentation fault и программа вылетает Улыбающийся
Кто-нибудь видел, чтобы QProcess::isRunning () возвращала FALSE?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Июль 05, 2007, 10:13 »

В чем смысл, написано в ассистанте.

Сам лично видел, что этот метод возвращает false.

Пример использования был таков:
Код:

while( proc.isRunning() )
{
     // Do something, while the process is running.
}


При этом никаких "segmentation fault" не возникало.

Qt 3.3.8 Win
Qt 3.3.6 Lin
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
cresta
Гость
« Ответ #2 : Июль 05, 2007, 14:27 »

Код:
proc->tryTerminate();
QTimer::singleShot( 10000, this, SLOT( checkProc() ) );

void Dlg::checkProc(){
    if ( proc !=0 && proc->isRunning() ) qDebug ("running");
    else qDebug ("exited");
}

на qt 3.3.4 никакого qDebug, только segmentation fault Улыбающийся
При этом указатель валидный (тот же, что и до tryTerminate).

В поиске тоже видел тему про segmentation fault при вызове isRunning() после уничтожения процесса.

А есть какой-нибудь способ определения безопасности чтения/записи по указателю? Типа BadRead/WritePtr.
Или какой-нибудь класс для перехвата ошибок типа segmentation fault?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Июль 05, 2007, 17:02 »

Попробуй вместо proc->tryTerminate() написать proc->kill(). Что-то измениться?

добавлено спустя 9 минут:

 Да, и ещё.. а в какой строке метода isRunning падает прога?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
cresta
Гость
« Ответ #4 : Июль 06, 2007, 01:02 »

с proc->kill() та же история.

А в какой строке метода ошибка - не знаю - у меня нет исходников qt, чтобы анализировать их.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.137 секунд. Запросов: 23.