1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<code>#include <stdio.h></code>
<code>void</code>
<code>pr_stdio(</code><code>const</code>
<code>char</code> <code>*,</code><code>file</code>
<code>*);</code>
<code>int</code> <code>main()</code>
<code>{</code>
<code> </code><code>file</code>
<code>*fp;</code>
<code> </code><code>fputs</code><code>(</code><code>"enter any character\n"</code><code>,stdout);</code>
<code> </code><code>if</code><code>(</code><code>getchar</code><code>()==eof)</code>
<code> </code><code>printf</code><code>(</code><code>"getchar error"</code><code>);</code>
<code> </code><code>fputs</code><code>(</code><code>"one line to standard error\n"</code><code>,stderr);</code>
<code> </code><code>pr_stdio(</code><code>"stdin"</code><code>,stdin);</code>
<code> </code><code>pr_stdio(</code><code>"stdout"</code><code>,stdout);</code>
<code> </code><code>pr_stdio(</code><code>"stderr"</code><code>,stderr);</code>
<code> </code>
<code> </code><code>if</code><code>((fp=</code><code>fopen</code><code>(</code><code>"/etc/motd"</code><code>,</code><code>"r"</code><code>))==null)</code>
<code> </code><code>printf</code><code>(</code><code>"fopen error"</code><code>);</code>
<code> </code><code>if</code><code>(</code><code>fgetc</code><code>(fp)==eof)</code>
<code> </code><code>printf</code><code>(</code><code>"getc error"</code><code>);</code>
<code> </code><code>pr_stdio(</code><code>"/etc/motd"</code><code>,fp);</code>
<code> </code><code>return</code>
<code>0;</code>
<code>}</code>
<code>char</code> <code>*name,</code><code>file</code>
<code>*fp)</code>
<code> </code><code>printf</code><code>(</code><code>"stream=%s, "</code><code>,name);</code>
<code> </code><code>if</code><code>(fp->_flags & _io_unbuffered)</code>
<code> </code><code>printf</code><code>(</code><code>"unbuffered"</code><code>);</code>
<code> </code><code>else</code>
<code>if</code><code>(fp->_flags & _io_line_buf)</code>
<code> </code><code>printf</code><code>(</code><code>"line buffered"</code><code>);</code>
<code> </code><code>printf</code><code>(</code><code>"fully buffered or modified"</code><code>);</code>
<code> </code><code>printf</code><code>(</code><code>",buffer size = %d\n"</code><code>,fp->_io_buf_end-fp->_io_buf_base);</code>
在ubuntu下运行如下:
