4.3BSD-UWisc/man/cat3/popen.3

Compare this file to the similar file:
Show the results in this format:




POPEN(3)            UNIX Programmer's Manual             POPEN(3)



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

SYNOPSIS
     #include <stdio.h>

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

     pclose(stream)
     FILE *stream;

DESCRIPTION
     The arguments to _p_o_p_e_n 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 _p_o_p_e_n should be closed by _p_c_l_o_s_e, 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(3S), fclose(3S), system(3), wait(2), sh(1)

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

     _P_c_l_o_s_e returns -1 if _s_t_r_e_a_m is not associated with a
     `popened' command.

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 _f_f_l_u_s_h, see _f_c_l_o_s_e(3S).

     _P_o_p_e_n always calls _s_h, never calls _c_s_h.










Printed 12/27/86          May 15, 1985                          1