POPEN(3) NEWLIB POPEN(3)NAME
13.1 `popen', `pclose'--tie a stream to a command string
SYNOPSIS
#include <stdio.h>
FILE *popen(const char *S, const char *MODE);
int pclose(FILE *F);
DESCRIPTION
Use `popen' to create a stream to a child process executing a command
string `*S' as processed by `/bin/sh' on your system. The argument
MODE must start with either ``r'', where the stream reads from the
child's `stdout', or ``w'', where the stream writes to the child's
`stdin'. As an extension, MODE may also contain ``e'' to set the
close-on-exec bit of the parent's file descriptor. The stream created
by `popen' must be closed by `pclose' to avoid resource leaks.
Streams created by prior calls to `popen' are not visible in subseā
quent `popen' children, regardless of the close-on-exec bit.
Use "`system(NULL)'" to test whether your system has `/bin/sh'
available.
RETURNS
`popen' returns a file stream opened with the specified MODE, or `NULL'
if a child process could not be created. `pclose' returns -1 if the
stream was not created by `popen' or if the application used `wait' or
similar to steal the status; otherwise it returns the exit status of
the child which can be interpreted in the same manner as a status
obtained by `waitpid'.
PORTABILITY
POSIX.2 requires `popen' and `pclose', but only specifies a mode of
just `r' or `w'. Where `sh' is found is left unspecified.
Supporting OS subroutines required: `_exit', `_execve', `_fork_r',
`_wait_r', `pipe', `fcntl', `sbrk'.
SEE ALSOpopen is part of the library. The full documentation for is maintained
as a Texinfo manual. If info and are properly installed at your site,
the command
info
will give you access to the complete manual.
NEWLIB April 2010 POPEN(3)