home *** CD-ROM | disk | FTP | other *** search
-
- SETBUF(3) UNIX Programmer's Manual SETBUF(3)
-
- NNAAMMEE
- sseettbbuuff, sseettbbuuffffeerr, sseettlliinneebbuuff, sseettvvbbuuff - stream buffering operations
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
-
- _i_n_t
- sseettbbuuff(_F_I_L_E _*_s_t_r_e_a_m, _c_h_a_r _*_b_u_f)
-
- _i_n_t
- sseettbbuuffffeerr(_F_I_L_E _*_s_t_r_e_a_m, _c_h_a_r _*_b_u_f, _s_i_z_e___t _s_i_z_e)
-
- _i_n_t
- sseettlliinneebbuuff(_F_I_L_E _*_s_t_r_e_a_m)
-
- _i_n_t
- sseettvvbbuuff(_F_I_L_E _*_s_t_r_e_a_m, _c_h_a_r _*_b_u_f, _i_n_t _m_o_d_e, _s_i_z_e___t _s_i_z_e)
-
- DDEESSCCRRIIPPTTIIOONN
- The three types of buffering available are unbuffered, block buffered,
- and line buffered. When an output stream is unbuffered, information ap
- pears 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 newline 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 ob
- tained. If a stream refers to a terminal (as _s_t_d_o_u_t normally does) it is
- line buffered. The standard error stream _s_t_d_e_r_r is always unbuffered.
-
- The sseettvvbbuuff() function may be used at any time on any open stream to
- change its buffer. The _m_o_d_e parameter must be one of the following three
- macros:
-
- _IONBF unbuffered
-
- _IOLBF line buffered
-
- _IOFBF fully buffered
-
- Except for unbuffered files, the _b_u_f argument should point to a buffer at
- least _s_i_z_e bytes long; this buffer will be used instead of the current
- buffer. If the argument _b_u_f is NULL, only the mode is affected; a new
- buffer will be allocated on the next read or write operation. The
- sseettvvbbuuff() 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 imme
- diately after a call to fflush.
-
- The other three calls are, in effect, simply aliases for calls to
- sseettvvbbuuff(). The sseettbbuuff() function is exactly equivalent to the call
-
- setvbuf(stream, buf, buf ? _IOFBF: _IONBF, BUFSIZ);
-
- The sseettbbuuffffeerr() 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 sseettlliinneebbuuff() function is exactly equivalent to the call:
-
- setvbuf(stream, (char *)NULL, _IOLBF, 0);
-
- SSEEEE AALLSSOO
- fopen(3), fclose(3), fread(3), malloc(3), puts(3), printf(3)
-
- SSTTAANNDDAARRDDSS
- The sseettbbuuff() and sseettvvbbuuff() functions conform to ANSI C3.1591989 (``ANSI
- C'').
-
- BBUUGGSS
- The sseettbbuuffffeerr() and sseettlliinneebbuuff() functions are not portable to versions
- of BSD UNIX before 4.2BSD. On 4.2BSD and 4.3BSD systems, sseettbbuuff() always
- uses a suboptimal buffer size and should be avoided.
-
- 4th Berkeley Distribution June 29, 1991 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-