NAME
popen, pclose - initiate I/O to/from a process
SYNOPSIS
#include <stdio.h>
FILE *popen(command, type)
const char *command, *type;
int pclose(stream)
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.
Pclose returns -1 if stream 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 fflush, see fclose(3).
Popen always calls sh, never calls csh.