Language Ccpp Cref Man Setbuf.htm

 <TITLE>setbuf</TITLE>
<body bgcolor="#ffffcc">
<hr>
<pre>
<h3>SETBUF(3) Linux Programmer's Manual SETBUF(3)
</h3>
<h3>NAME
</h3> setbuf, setbuffer, setlinebuf, setvbuf - stream buffering
 operations
<h3>SYNOPSIS
</h3> #include &lt;stdio.h&gt;
 int setbuf( FILE *stream, char *buf);
 int setbuffer( FILE *stream, char *buf, size_tsize);
 int setlinebuf( FILE *stream);
 int setvbuf( FILE *stream, char *buf, int mode , size_t
 size);
<h3>DESCRIPTION
</h3> The three types of buffering available are unbuffered,
 block buffered, and line buffered. When an output stream
 is unbuffered, information appears on the destination file
 or terminal as soon as written; when it is block buffered
 many characters are saved up and written as a block; when
 it is line buffered characters are saved up until a new-
 line is output or input is read from any stream attached
 to a terminal device (typically stdin). The function
 fflush(3) may be used to force the block out early. (See
 fclose(3).) Normally all files are block buffered. When
 the first I/O operation occurs on a file, malloc(3) is
 called, and a buffer is obtained. If a stream refers to a
 terminal (as stdout normally does) it is line buffered.
 The standard error stream stderr is always unbuffered.
 The setvbuf function may be used at any time on any open
 stream to change its buffer. The mode parameter must be
 one of the following three macros:
 _IONBF unbuffered
 _IOLBF line buffered
 _IOFBF fully buffered
 Except for unbuffered files, the buf argument should point
 to a buffer at least size bytes long; this buffer will be
 used instead of the current buffer. If the argument buf
 is NULL, only the mode is affected; a new buffer will be
 allocated on the next read or write operation. The
 setvbuf function may be used at any time, but can only
 change the mode of a stream when it is not ``active'':
 that is, before any I/O, or immediately after a call to
 fflush.
 The other three calls are, in effect, simply aliases for
 calls to setvbuf. The setbuf function is exactly equiva-
 lent to the call
 setvbuf(stream, buf, buf _IOFBF : _IONBF,
<h3>BSD MANPAGE 29 November 1993 1
</h3>
<h3>SETBUF(3) Linux Programmer's Manual SETBUF(3)
</h3>
 BUFSIZ);
 The setbuffer function is the same, except that the size
 of the buffer is up to the caller, rather than being
 determined by the default BUFSIZ. The setlinebuf function
 is exactly equivalent to the call:
 setvbuf(stream, (char *)NULL, _IOLBF, 0);
</pre>
<hr>
<h3>SEE ALSO
</h3><p>
<a href=fopen.htm>fopen</a>, 
<a href=fclose.htm>fclose</a>, 
<a href=fread.htm>fread</a>, 
<a href=malloc.htm>malloc</a>, 
<a href=puts.htm>puts</a>, 
<a href=printf.htm>printf</a>, 
<pre>
<h3>STANDARDS
</h3> The setbuf and setvbuf functions conform to ANSI
 C3.159-1989 (``ANSI C'').
<h3>BUGS
</h3> The setbuffer and setlinebuf functions are not portable to
 versions of BSD before 4.2BSD, and may not be available
 under Linux. On 4.2BSD and 4.3BSD systems, setbuf always
 uses a suboptimal buffer size and should be avoided.
 You must make sure that both buf and the space it points
 to still exist by the time stream is closed, which also
 happens at program termination.
 For example, the following is illegal:
 #include &lt;stdio.h&gt;
 int main()
 {
 char buf[BUFSIZ];
 setbuf(stdin, buf);
 printf("Hello, world!\n");
 return 0;
 }
<h3>BSD MANPAGE 29 November 1993 2
</h3>
</pre>
<P>
<hr>
<p>
<center>
<table border=2 width=80%>
<tr align=center>
<td width=25%>
<a href=../index.htm>Top</a>
</td><td width=25%>
<a href=../master_index.html>Master Index</a>
</td><td width=25%>
<a href=../SYNTAX/keywords.html>Keywords</a>
</td><td width=25%>
<a href=../FUNCTIONS/index.htm>Functions</a>
</td>
</tr>
</table>
</center>
<p>
<hr>
This manual page was brought to you by <i>mjl_man V-2.0</i>

file: /Techref/language/ccpp/cref/MAN/setbuf.htm, 4KB, , updated: 2003年3月20日 10:39, local time: 2025年9月3日 23:31,
40.74.122.252:LOG IN

©2025 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE!

<A HREF="http://techref.massmind.org/techref/language/ccpp/cref/MAN/setbuf.htm"> setbuf</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type a nice message (short messages are blocked as spam) in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.


Link? Put it here:
if you want a response, please enter your email address:
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?

Welcome to massmind.org!

Welcome to techref.massmind.org!

.

AltStyle によって変換されたページ (->オリジナル) /