NAME

     popen, pclose - initiate I/O to/from a process


SYNOPSIS

     #include <stdio.h>

     FILE *popen(const char *command, const char *type)
     int pclose(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.   It
     creates  a  pipe between the calling process and the command
     to be executed.  The value returned is a stream pointer that
     can  be used (as appropriate) to write to the standard input
     of the command or read from its standard output.

     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), fopen(3), fclose(3), system(3), wait(2), sh(1).


DIAGNOSTICS

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


BUGS

     Buffered reading before opening an input  filter  may  leave
     the  standard  input  of that filter mispositioned.  Similar
     problems with an output filter may be forestalled by careful
     buffer flushing, for instance, with fflush, see fclose(3).