HPUX popen[3s]






 popen(3S)                                                         popen(3S)





 NAME
      popen(), pclose() - initiate pipe I/O to/from a process

 SYNOPSIS
      #include <stdio.h>

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

      int pclose(FILE *stream);

 DESCRIPTION
      popen() creates a pipe between the calling program and a command to be
      executed by the POSIX shell, /bin/posix/sh (see sh-posix(1)).

      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() returns 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 can be used as an
      input filter and a type w command as an output filter.

 RETURN VALUE
      popen() returns a NULL pointer if files or processes cannot be
      created.  The success of the command execution can be checked by
      examining the return value of pclose().

      pclose() returns -1 if stream is not associated with a popen()ed
      command, or 127 if /bin/posix/sh could not be executed for some
      reason.

 WARNINGS
      If the original and popen()ed processes concurrently read or write a
      common file, neither should use buffered I/O because the buffering
      will not work properly.  Problems with an output filter can be
      forestalled by careful buffer flushing, e.g., with fflush(); see
      fclose(3S).

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

 STANDARDS CONFORMANCE
      popen(): AES, SVID2, XPG2, XPG3, XPG4, POSIX.2



 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 popen(3S)                                                         popen(3S)





      pclose(): AES, SVID2, XPG2, XPG3, XPG4, POSIX.2





















































 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992