glenda.party
term% ls -F
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)