bsd man page for popen

Query: popen

OS: bsd

Section: 3

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

POPEN(3)						     Library Functions Manual							  POPEN(3)

NAME
popen, pclose - initiate I/O 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 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(3S), fclose(3S), 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(3S). Popen always calls sh, never calls csh. 7th Edition May 15, 1985 POPEN(3)
Related Man Pages
popen(3) - bsd
popen(3) - osx
popen(3) - minix
pclose(3) - ultrix
pclose(3) - freebsd
Similar Topics in the Unix Linux Community
How to recognize if a file still opened by any process?
Pipe filtering
pass more than one input with pipe (&quot;|&quot;)
Problems understanding pipes
Using input from one file to define scope of other file in Linux