|
|
1.1 root 1:
2:
3: freopen() STDIO Function freopen()
4:
5:
6:
7:
8: Open file stream for standard I/O
9:
10: #iinncclluuddee <ssttddiioo.hh>
11: FFIILLEE *ffrreeooppeenn (_n_a_m_e, _t_y_p_e, _f_p)
12: cchhaarr *_n_a_m_e, *_t_y_p_e; FFIILLEE *_f_p;
13:
14: ffrreeooppeenn reinitializes the file stream fp. It closes the file
15: currently associated with it, opens or creates the file name, and
16: returns a pointer to the structure for use by other STDIO
17: routines. name names a file.
18:
19: _t_y_p_e is a string that consists of one or more of the characters
20: ``rrwwaa'' (for, respectively, read, write, and append) to indicate
21: the mode of the stream. For further discussion of the type vari-
22: able, see the entry for fopen. freopen differs from fopen only
23: in that fp specifies the stream to be used. Any stream
24: previously associated with fp is closed by ffcclloossee. ffrreeooppeenn is
25: usually used to change the meaning of ssttddiinn, ssttddoouutt, or ssttddeerrrr.
26:
27: ***** Example *****
28:
29: This example, called mmaattcchh.cc, looks in aarrggvv[22] for the pattern
30: given by aarrggvv[11]. If the pattern is found, the line that con-
31: tains the pattern is written into the file aarrggvv[33] or to ssttddoouutt.
32:
33:
34: #include <stdio.h>
35: #define MAXLINE 128
36: char buffer[MAXLINE];
37:
38:
39:
40: void fatal(message)
41: char *message;
42: {
43: fprintf(stderr, "match: %s\n", message);
44: exit(1);
45: }
46:
47:
48:
49: main(argc,argv)
50: int argc; char *argv[];
51: {
52: FILE *fpin, *fpout;
53:
54:
55:
56: if (argc != 3 && argc != 4)
57: fatal("Usage: match pattern infile [outfile]");
58: if ((fpin = fopen(argv[2], "r")) == NULL)
59: fatal("Cannot open input file");
60:
61:
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
67:
68:
69: freopen() STDIO Function freopen()
70:
71:
72:
73:
74:
75: fpout = stdout;
76: if (argc == 4)
77: if ((fpout = freopen(argv[3], "w", stdout)) == NULL)
78: fatal("Cannot open output file");
79:
80:
81:
82: while (fgets(buffer, MAXLINE, fpin) != NULL) {
83: if (pnmatch(buffer, argv[1], 1))
84: fputs(buffer, stdout);
85: }
86: exit(0);
87: }
88:
89:
90: ***** See Also *****
91:
92: fopen(), STDIO
93:
94: ***** Diagnostics *****
95:
96: freopen returns NULL if the type string is nonsense or if the
97: file cannot be opened. Currently, only 20 FFIILLEE structures can be
98: allocated per program, including ssttddiinn, ssttddoouutt, and ssttddeerrrr.
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130: COHERENT Lexicon Page 2
131:
132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.