POPEN(3S) DOMAIN/IX SYS5 POPEN(3S)
NAME
popen, pclose - initiate I/O to and from a process
USAGE
#include <stdio.h>
FILE *popen(command, type)
char *command, *type;
pclose(stream)
FILE *stream;
DESCRIPTION
The arguments to popen are pointers to null-terminated
strings that contain a shell command line and an I/O mode,
respectively. The I/O mode is either "r" for reading or "w"
for writing. Popen creates a pipe between the calling pro-
cess 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 stan-
dard output.
A stream opened by popen should be closed by pclose, which
waits for the process associated with it to terminate and
returns the exit status of the command.
Because open files are shared, an "r" command may act as an
input filter, and a "w" as an output filter.
NOTES
Buffered reading before opening an input filter may leave
the standard input of that filter in the wrong position.
Similar problems with an output filter may be forestalled by
careful buffer flushing with fflush; see fclose(3).
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.
RELATED INFORMATION
pipe(2), fopen(3S), fclose(3S), system(3), wait(2), sh(1)
Printed 12/4/86 POPEN-1