Автор Тема: popen в php  (Прочитано 4128 раз)

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

Оффлайн archy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 19
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
popen в php
« : 20 Февраля 2002, 10:27:28 »
имеем php 4.0.6 на redhat 7.2...
тут http://www.ru.php.net/manual/ru/function.popen.php прочитал, что php начиная с 4 версии умеет открывать процессы, в которые можно писать и читать ($fd=popen("чего-то","w+");) но у меня ругается, что Invalid argument... Если кто сталкивался подскажите плиз как лечить ил другой способ...

Оффлайн DimovD

  • Ноу проблем
  • Пользователь
  • **
  • Сообщений: 79
  • +0/-0
  • 2
    • Просмотр профиля
popen в php
« Ответ #1 : 20 Февраля 2002, 10:40:05 »
незнаю как насчёт записи в процесс, а вот чтение
$fp = popen ("ping 127.0.0.1", "r");
у меня работает без вопросов.

Оффлайн archy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 19
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
popen в php
« Ответ #2 : 20 Февраля 2002, 12:04:10 »
дык, если "r" читает, если "w" пишет без проблем, а по "w+" должен читать и писать одновременно... но у меня никак :(

  • Гость
popen в php
« Ответ #3 : 24 Февраля 2002, 04:51:20 »
archy, а доку хорошо читал? :)

в описании, чего возвращает функция popen, четко ж написано:

Returns a file pointer identical to that returned by fopen(), except that it is unidirectional (may only be used for reading or writing)...

дословно: возвращает дескриптор файла, аналогично fopen(), за исключением того, что этот дескриптор "однонаправленный"
{ ВНИМАНИЕ! дальше объясняется, что означает "однонаправленный" ;) }
(может быть использован только для чтения ИЛИ только для записи)

...

и что ж ты от нее болезной хочешь? :) ну, не умеет она ЭТО, не умеет :)

Оффлайн archy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 19
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
popen в php
« Ответ #4 : 25 Февраля 2002, 15:57:10 »
доку читал очень внимательно.... но, ползем по ссылке http://www.ru.php.net/manual/ru/function.popen.php, скроллим вниз и читаем мессадж от
matthew@leftcoast.com
04-Aug-2000 02:46
PHP4 appears to allow w+ for reading and writing..

может кто-нибудь объяснит.... или они там тоже плохо доки читают... :)
если есть другой способ, буду рад услышать!

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
popen в php
« Ответ #5 : 25 Февраля 2002, 20:52:43 »
вообщето w+ идеологически лсожная штука - если ты ошибешься с порядком операций (что должно быть первым - чтение или запись и сколько надо читать/писать)  , то твоя или чужая прога заблокируется и все/....  DeadLock :)

А вот это написано там же ;)

Цитировать

I found that PHP4.0.4pl1 on Redhat 6.2 does not allow \'w+\' flag in popen()
to create a bi-directional pipe. Just use plain \'r\' instead!


Какого OS-а гоняешь?
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн archy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 19
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
popen в php
« Ответ #6 : 26 Февраля 2002, 08:07:19 »
выше же написано RedHat 7.2 php 4.0.6... ну да черт с ним... тогда может ктонить подскажет, реально ли написать на php скрипт, который будет работать как надстройка над прогой, которая работает со стандартным вводом выводом?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28