


      POPEN(3S)                   (UNIX 5.0)                  POPEN(3S)



      NAME
           popen, pclose - initiate pipe to/from a process

      SYNTAX
           #include <stdio.h>

           FILE *popen (command, type)
           char *command, *type;

           int pclose (stream)
           FILE *stream;

      DESCRIPTION
           The arguments to popen are pointers to null-terminated
           strings containing, respectively, a shell command line and
           an I/O mode, either r for reading or w for writing.  Popen
           creates a pipe between the calling program and the command
           to be executed.  The value returned is a stream pointer such
           that one can write to the standard input of the command, if
           the I/O mode is w, by writing to the file stream; and one
           can read from the standard output of the command, if the I/O
           mode is r, by reading from the file stream.

           A stream opened by popen should be closed by pclose, which
           waits for the associated process to terminate and returns
           the exit status of the command.

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

      SEE ALSO
           wait(2), fclose(3S), fopen(3S), system(3S).

      DIAGNOSTICS
           Popen returns a NULL pointer if files or processes cannot be
           created, or if the shell cannot be accessed.

           Pclose returns -1 if stream is not associated with a
           ``popened'' command.

      BUGS
           If the original and ``popened'' processes concurrently read
           or write a common file, neither should use buffered I/O,
           because the buffering gets all mixed up.  Problems with an
           output filter may be forestalled by careful buffer flushing,
           e.g. with fflush; see fclose(3S).









      Page 1                                         (73 A2 02MTA REV1)



