Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ожидание выполнения программы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Консоль ждет конца выполенния программы
Волчонок
Отправлено: 22 Сентября, 2006 - 19:20:09
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




Может быть кто сталкивался с этой проблемой раньше, буду признателен за помощь в решении этой задачи.

Пишу консольное приложение, задачей которого является запуск внешних программ.
Камень преткновения в том, что все функции (exec, shell, shell_exec) ожидают завершения приложения после егоь успешного запуска, т. е. консоль в Windows, если не создавать отдельный процесс (вторую консоль) недоступна.

Может быть я не понимаю специфики? Так как приложение запускается из командной строки, то она же и ожидает его завершения (DOS, она не мультизадачная), хотя приложение "виндовое", и вполне работает само по себе...

Собственно, сам вопрос: каким образом можно запустить внешнее приложение, и не ожидать его завершения? То есть вернуть управление консоли (закрыть свою программу), либо продолжить дальнейшее ее выполнение.

Если что можете - подскажите Улыбка

Благодарю. Улыбка
 
 Top
ARTY
Отправлено: 23 Сентября, 2006 - 13:46:36
Post Id



Почетный посетитель


Покинул форум
Сообщений всего: 238
Дата рег-ции: Июнь 2006  


Помог: -2 раз(а)




Я использовал для этой цели PERL:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. #!/usr/bin/perl -w
  3.  
  4. system(1, 'start /MIN programma.exe');
  5.  
  6.  

и.т.д.

На PHP была такая же проблема.
 
 Top
Волчонок
Отправлено: 23 Сентября, 2006 - 16:52:30
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




Благодарю Вас за помощь.

Решение я нашел (10 минут назад Улыбка)

Я не знаю почему оно так работает, но работает:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. pclose(popen("start /b <program> <args>", 'r'));
  4. ?>
  5.  


Действительно, внешняя программа начинает выполнение, но управление возвращается окнсоли (в моем случае), либо можно продолжать свою программу дальше...

Взято отсюда:
http://ru.php.net/manual/ru/ref.exec.php

Благодарю Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB