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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как через QProcess отправить запущенному процессу SIGINT?  (Прочитано 4455 раз)
maks
Гость
« : Ноябрь 28, 2009, 01:31 »

Как можно через QProcess отправит процессу запущенному процессу в QProcess отправить сообщение SIGINT (Ctrl+C)? 
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Ноябрь 28, 2009, 02:15 »

это не сообщение, а сигнал, который отправляется через kill(2)
Записан
maks
Гость
« Ответ #2 : Ноябрь 28, 2009, 03:02 »

А как его отправит не привязываясь к операционной системе используя средства Qt?
Записан
gmorgunov
Гость
« Ответ #3 : Ноябрь 28, 2009, 05:16 »

Можно средствами Qt- void QPricess::kill() [slot]. Вот пример:
Код:
#include <QtGui>
#include <QProcess>

int main(int argc, char **argv){   
    QApplication app(argc, argv);
    QPushButton *button = new QPushButton("kill process while_1");
    button->show();
    QProcess  *process = new QProcess;
    process->start(QString("/home/mike/process_qt/while_1")); // полный путь
    QObject::connect(button, SIGNAL(clicked()), process, SLOT(kill()));
    return app.exec();
}
Соберите проект. А также откомпилируйте программку while_1.c(беконечный цикл): gcc while_1.c -o while_1
Код:
int main() {
    while (1) { }
}
Запустите основную программу, появится кнопка, откройте другой терминал и в Linux:   ps -e
Там будет процесс while_1. Нажмите кнопку, опять ps  -e  - его уже не будет.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Ноябрь 28, 2009, 05:22 »

Можно средствами Qt- void QPricess::kill() [slot]. Вот пример:

QPricess::kill() посылает SIGKILL, а не SIGINT. kill(2) поддерживается даже в винде, думаю можно обойтись им.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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