Bell 32V development
authorTom London <tbl@research.uucp>
Sat, 9 Dec 1978 03:50:54 +0000 (22:50 -0500)
committerTom London <tbl@research.uucp>
Sat, 9 Dec 1978 03:50:54 +0000 (22:50 -0500)
Work on file usr/man/man3/popen.3s

Co-Authored-By: John Reiser <jfr@research.uucp>
Synthesized-from: 32v

usr/man/man3/popen.3s [new file with mode: 0644]

diff --git a/usr/man/man3/popen.3s b/usr/man/man3/popen.3s
new file mode 100644 (file)
index 0000000..d224b99
--- /dev/null
@@ -0,0 +1,66 @@
+.TH POPEN 3S
+.SH NAME
+popen, pclose \- initiate I/O to/from a process
+.SH SYNOPSIS
+.B #include <stdio.h>
+.PP
+.SM
+.B FILE
+.B *popen(command, type)
+.br
+.B char *command, *type;
+.PP
+.B pclose(stream)
+.br
+.SM
+.B FILE
+.B *stream;
+.SH DESCRIPTION
+The arguments to 
+.I 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.
+.PP
+A stream opened by
+.I popen
+should be closed by
+.I pclose,
+which waits for the associated process to terminate
+and returns the exit status of the command.
+.PP
+Because open files are shared, a type "r" command
+may be used as an input filter,
+and a type "w" as an output filter.
+.SH "SEE ALSO"
+pipe(2),
+fopen(3),
+fclose(3),
+system(3),
+wait(2)
+.SH DIAGNOSTICS
+.I Popen
+returns a null pointer
+if files or processes cannot be created, or the Shell 
+cannot be accessed.
+.PP
+.I Pclose
+returns \-1 if
+.I stream
+is not associated with a `popened' command.
+.SH 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, e.g. with
+.I fflush,
+see
+.IR fclose (3).