1POPEN(3S) POPEN(3S)
2
3
4
6 popen, pclose - initiate I/O to/from a process
7
9 #include <stdio.h>
10
11 FILE *popen(command, type)
12 char *command, *type;
13
14 pclose(stream)
15 FILE *stream;
16
18 The arguments to popen are pointers to null-terminated strings containā
19 ing respectively a shell command line and an I/O mode, either "r" for
20 reading or "w" for writing. It creates a pipe between the calling
21 process and the command to be executed. The value returned is a stream
22 pointer that can be used (as appropriate) to write to the standard
23 input of the command or read from its standard output.
24
25 A stream opened by popen should be closed by pclose, which waits for
26 the associated process to terminate and returns the exit status of the
27 command.
28
29 Because open files are shared, a type "r" command may be used as an
30 input filter, and a type "w" as an output filter.
31
33 pipe(2), fopen(3), fclose(3), system(3), wait(2)
34
36 Popen returns a null pointer if files or processes cannot be created,
37 or the Shell cannot be accessed.
38
39 Pclose returns -1 if stream is not associated with a `popened' command.
40
42 Buffered reading before opening an input filter may leave the standard
43 input of that filter mispositioned. Similar problems with an output
44 filter may be forestalled by careful buffer flushing, e.g. with fflush,
45 see fclose(3).
46
47
48
49 POPEN(3S)