Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: запуск приложений  (Прочитано 1236 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gudwin

  • Автор темы
  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
запуск приложений
« : 06 Сентября 2010, 20:41:31 »
Здравствуйте. Когда я запускаю системную утилиту через через system, то не могу ничего делать с программой пока выполняется эта команда. Как можно это обойти?

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: запуск приложений
« Ответ #1 : 07 Сентября 2010, 00:00:20 »
Тебе нужно использовать системные вызовы fork и exec в юниксподобных системах и CreateProcess в винде.

Вот небольшой пример класса для асинхронной работы с порождённым дочерним процессом:
(Нажмите, чтобы показать/скрыть)

Ты кажется в соседней теме про Qt спрашивал. В Qt есть готовый класс QProcess который позволяет запускать приложения и работать с ними асинхронно.
« Последнее редактирование: 07 Сентября 2010, 02:12:36 от VestniK »

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: запуск приложений
« Ответ #2 : 07 Сентября 2010, 00:46:27 »
Как-то делал так:
system("blabla > /dev/null &");
xUbuntu 12.04

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: запуск приложений
« Ответ #3 : 07 Сентября 2010, 02:08:39 »
@Упс это читерство :)

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: запуск приложений
« Ответ #4 : 07 Сентября 2010, 02:20:21 »
@Упс это читерство :)
Понятия не имею что это такое, но работает до сих пор. :)
Другим можно, а мне нет  :), тем более что я не программист и даже не любитель, мне можно. :)
« Последнее редактирование: 07 Сентября 2010, 02:29:42 от Упс »
xUbuntu 12.04

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: запуск приложений
« Ответ #5 : 07 Сентября 2010, 10:43:31 »
минус данного решения в том, что нельзя получить (перехватить) консольный вывод прилоржения.

Оффлайн Gudwin

  • Автор темы
  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Re: запуск приложений
« Ответ #6 : 07 Сентября 2010, 10:57:48 »
Спасибо, решил проблему с помощью QProcess

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: запуск приложений
« Ответ #7 : 07 Сентября 2010, 11:04:31 »
минус данного решения в том, что нельзя получить (перехватить) консольный вывод прилоржения.
Ну так это если он нужен, а если нет?
Вот например утилита szap из dvb-apps прекрасно работает, а для просмотра выхлопа есть другая - femon, разные задачи - разные решения. Не вижу ничего плохого в том что бы отправить не нужный вывод в null.
xUbuntu 12.04

 

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