output CRLF instead of just LF to serial
[minix3.git] / man / man3 / popen.3
blobfe9f58f15dff0c6479ddf2d7c4411399a2830e78
1 .\"     @(#)popen.3     6.1 (Berkeley) 5/15/85
2 .\"
3 .TH POPEN 3 "May 15, 1985"
4 .AT 3
5 .SH NAME
6 popen, pclose \- initiate I/O to/from a process
7 .SH SYNOPSIS
8 .nf
9 .ft B
10 #include <stdio.h>
12 FILE *popen(const char *command, const char *type)
13 int pclose(FILE *stream)
14 .SH DESCRIPTION
15 The arguments to 
16 .B popen
17 are pointers to null-terminated strings containing respectively a
18 shell command line and an I/O mode, either "r" for reading or "w" for
19 writing.  It creates a pipe between the calling process and
20 the command to be executed.  The value returned is a stream pointer that
21 can be used (as appropriate) to write to the standard input
22 of the command or read from its standard output.
23 .PP
24 A stream opened by
25 .B popen
26 should be closed by
27 .BR pclose ,
28 which waits for the associated process to terminate
29 and returns the exit status of the command.
30 .PP
31 Because open files are shared, a type "r" command may be used as an input
32 filter, and a type "w" as an output filter.
33 .SH "SEE ALSO"
34 .BR pipe (2),
35 .BR fopen (3),
36 .BR fclose (3),
37 .BR system (3),
38 .BR wait (2),
39 .BR sh (1).
40 .SH DIAGNOSTICS
41 .B Popen
42 returns a null pointer if files or processes cannot be created, or the shell 
43 cannot be accessed.
44 .SH BUGS
45 Buffered reading before opening an input filter
46 may leave the standard input of that filter mispositioned.
47 Similar problems with an output filter may be
48 forestalled by careful buffer flushing, for instance, with
49 .BR fflush ,
50 see
51 .BR fclose (3).