Forum Webscript.Ru
Программирование => PHP => Тема начата: archy от 20 Февраля 2002, 10:27:28
-
имеем php 4.0.6 на redhat 7.2...
тут http://www.ru.php.net/manual/ru/function.popen.php (http://www.ru.php.net/manual/ru/function.popen.php) прочитал, что php начиная с 4 версии умеет открывать процессы, в которые можно писать и читать ($fd=popen("чего-то","w+");) но у меня ругается, что Invalid argument... Если кто сталкивался подскажите плиз как лечить ил другой способ...
-
незнаю как насчёт записи в процесс, а вот чтение
$fp = popen ("ping 127.0.0.1", "r");
у меня работает без вопросов.
-
дык, если "r" читает, если "w" пишет без проблем, а по "w+" должен читать и писать одновременно... но у меня никак :(
-
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(), за исключением того, что этот дескриптор "однонаправленный"
{ ВНИМАНИЕ! дальше объясняется, что означает "однонаправленный" ;) }
(может быть использован только для чтения ИЛИ только для записи)
...
и что ж ты от нее болезной хочешь? :) ну, не умеет она ЭТО, не умеет :)
-
доку читал очень внимательно.... но, ползем по ссылке 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..
может кто-нибудь объяснит.... или они там тоже плохо доки читают... :)
если есть другой способ, буду рад услышать!
-
вообщето 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-а гоняешь?
-
выше же написано RedHat 7.2 php 4.0.6... ну да черт с ним... тогда может ктонить подскажет, реально ли написать на php скрипт, который будет работать как надстройка над прогой, которая работает со стандартным вводом выводом?