POPEN(3S) DOMAIN/IX Reference Manual (SYS5) POPEN(3S)
NAME
popen, pclose - initiate pipe to or from a process
USAGE
#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. Command is a Shell command line; type is an I/O
mode, either r for reading or w for writing. Popen creates
a pipe between the calling program and command. The func-
tion returns a stream pointer so that the program can write
to the standard input of the command, if the I/O mode is w,
by writing to the file stream; and can read from the stan-
dard output of the command, if the I/O mode is r, 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.
NOTES
If the original process and the one opened by popen read or
write a common file concurrently, neither should use buf-
fered I/O, because the buffering gets mixed up. Problems
with an output filter may be forestalled by careful buffer
flushing, e.g., with fflush; see fclose(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.
RELATED INFORMATION
pipe(2), wait(2), fclose(3S), fopen(3S), system(3S)
Printed 5/10/85 POPEN-1