php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #15171 popen not fully supported
Submitted: 2002-01-22 14:06 UTC Modified: 2002-04-29 06:41 UTC
Votes:2
Avg. Score:5.0 ± 0.0
Reproduced:2 of 2 (100.0%)
Same Version:1 (50.0%)
Same OS:0 (0.0%)
From: mlong at mlong dot org Assigned: hholzgra (profile)
Status: Closed Package: Feature/Change Request
PHP Version: 4.0.6 OS: Tru64 UNIX 5.0a
Private report: No CVE-ID: None
 [2002-01-22 14:06 UTC] mlong at mlong dot org
With PHP running under Tru64 UNIX, popen only supports "r" or "w"...it will not support "r+", "w+", or "rw".

Yet according to the Tru64 popen man page, Tru64 supports bidirectional pipes and can take rw (unless I am reading it wrong).  Yet when I try it with PHP, it tells me it is an invalid argument.

From the man page:

  The popen() function creates a pipe between the calling program and a shell
  command to be executed.  It returns a pointer to a FILE structure for the
  stream.

  If the type parameter is the value r, the calling program can read from the
  standard output of the command by reading from the returned file stream. If
  the type parameter is the value w, the calling program can write to the
  standard input of the command by writing to the returned file stream.

  Because open files are shared, a type r command can be used as an input
  filter and a type w command as an output filter.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-01-22 15:10 UTC] hholzgra@php.net
bidirectional popen() is not portable, 
but i'm working on a general pipe() 
function ...
 [2002-01-22 16:20 UTC] mlong at mlong dot org
Anything you could come up with would be great. There are times when you want to spawn a program and both read and write to stdin/stdout. Without a bidirectional pipe its quite messy to do.  None of the other PHP functions come close to addressing it (exec, system, etc.)
 [2002-03-19 16:29 UTC] phpbug at mrdrew dot com
I too would be greatly appreciative for a bi-directional pipe.  In my case I don't need a named pipe since each writer should be paired with only one reader.  Therefore, I prefer to have call like the one you are talking about where the pipe is essentially a pair of unnamed pipes to a system command from my PHP script.
 [2002-04-28 20:08 UTC] jimw@php.net
proc_open() does this.
 [2002-04-29 06:41 UTC] wez@php.net
proc_open is in CVS and will be in PHP 4.3
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Jun 16 18:01:30 2024 UTC