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
Форумы портала PHP.SU :: Версия для печати :: Ожидание выполнения программы
Форумы портала PHP.SU » PHP » Программирование на PHP » Ожидание выполнения программы

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

1. Волчонок - 22 Сентября, 2006 - 19:20:09 - перейти к сообщению
Может быть кто сталкивался с этой проблемой раньше, буду признателен за помощь в решении этой задачи.

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

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

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

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

Благодарю. Улыбка
2. ARTY - 23 Сентября, 2006 - 13:46:36 - перейти к сообщению
Я использовал для этой цели PERL:

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

и.т.д.

На PHP была такая же проблема.
3. Волчонок - 23 Сентября, 2006 - 16:52:30 - перейти к сообщению
Благодарю Вас за помощь.

Решение я нашел (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

Благодарю Улыбка

 

Powered by ExBB FM 1.0 RC1