Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pclose(3S) — A/UX 0.7

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

pipe(2)

wait(2)

fclose(3S)

fopen(3S)

system(3S)



     popen(3S)                                               popen(3S)



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

     SYNOPSIS
          #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; one string contains a shell command line and the
          other contains an I/O mode.  The mode may be 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.  If the I/O mode is w, one can
          write to the standard input of the command by writing to the
          file stream; if the I/O mode is r, one can read from the
          standard output of the command, 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
          pipe(2), 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 command
          opened by popen.

     BUGS
          If the original processes and processes opened by popen
          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., by using fflush; see fclose(3S).

          If an illegal type is passed, popen will fork and exec the
          command line passed to it before it discovers that the type
          was illegal.  This will result in a NULL pointer being
          returned and a broken pipe (with the command executing in



     Page 1                                        (last mod. 1/14/87)





     popen(3S)                                               popen(3S)



          the background).






















































     Page 2                                        (last mod. 1/14/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026