term% cat index.txt POPEN(3S) POPEN(3S)
NAME
popen, pclose - initiate IO to/from a process
SYNOPSIS
#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 contain‐
ing respectively a shell command line and an IO 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 in‐
put 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 in‐
put filter, and a type "w" as an output filter.
SEE ALSO
pipe(2), fopen(3), fclose(3), system(3), wait(2)
DIAGNOSTICS
Popen returns a null pointer if files or processes cannot be created,
or the Shell cannot be accessed.
Pclose returns -1 if there is no process to wait for.
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 calling fflush; see fclose(3).
POPEN(3S)