POPEN(3S) UNIX Programmer's Manual POPEN(3S) NAME popen, pclose - initiate pipe I/O to/from a process SYNOPSIS #include FILE *popen (command, type) char *command, *type; int pclose (stream) FILE *stream; HP-UX COMPATIBILITY Level: HP-UX/RUN ONLY Origin: System V 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. _P_o_p_e_n 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), wait(2), fclose(3S), fopen(3S), system(3S). DIAGNOSTICS _P_o_p_e_n returns a null pointer if files or processes cannot be created, or if 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 "_p_o_p_e_ned" command. BUGS Only one stream opened by _p_o_p_e_n can be in use at once. 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, e.g. with _f_f_l_u_s_h; see _f_c_l_o_s_e(3S).