home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / man / cat3 / setbuf.0 < prev    next >
Text File  |  1993-12-07  |  4KB  |  133 lines

  1.  
  2. SETBUF(3)                  UNIX Programmer's Manual                  SETBUF(3)
  3.  
  4. NNAAMMEE
  5.      sseettbbuuff, sseettbbuuffffeerr, sseettlliinneebbuuff, sseettvvbbuuff - stream buffering operations
  6.  
  7. SSYYNNOOPPSSIISS
  8.      ##iinncclluuddee <<ssttddiioo..hh>>
  9.  
  10.      _i_n_t
  11.      sseettbbuuff(_F_I_L_E _*_s_t_r_e_a_m, _c_h_a_r _*_b_u_f)
  12.  
  13.      _i_n_t
  14.      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)
  15.  
  16.      _i_n_t
  17.      sseettlliinneebbuuff(_F_I_L_E _*_s_t_r_e_a_m)
  18.  
  19.      _i_n_t
  20.      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)
  21.  
  22. DDEESSCCRRIIPPTTIIOONN
  23.      The three types of buffering available are unbuffered, block buffered,
  24.      and line buffered.  When an output stream is unbuffered, information ap­
  25.      pears on the destination file or terminal as soon as written; when it is
  26.      block buffered many characters are saved up and written as a block; when
  27.      it is line buffered characters are saved up until a newline is output or
  28.      input is read from any stream attached to a terminal device (typically
  29.      stdin).  The function fflush(3) may be used to force the block out early.
  30.      (See fclose(3).)  Normally all files are block buffered.  When the first
  31.      I/O operation occurs on a file, malloc(3) is called, and a buffer is ob­
  32.      tained.  If a stream refers to a terminal (as _s_t_d_o_u_t normally does) it is
  33.      line buffered.  The standard error stream _s_t_d_e_r_r is always unbuffered.
  34.  
  35.      The sseettvvbbuuff() function may be used at any time on any open stream to
  36.      change its buffer.  The _m_o_d_e parameter must be one of the following three
  37.      macros:
  38.  
  39.            _IONBF  unbuffered
  40.  
  41.            _IOLBF  line buffered
  42.  
  43.            _IOFBF  fully buffered
  44.  
  45.      Except for unbuffered files, the _b_u_f argument should point to a buffer at
  46.      least _s_i_z_e bytes long; this buffer will be used instead of the current
  47.      buffer.  If the argument _b_u_f is NULL, only the mode is affected; a new
  48.      buffer will be allocated on the next read or write operation.  The
  49.      sseettvvbbuuff() function may be used at any time, but can only change the mode
  50.      of a stream when it is not ``active'': that is, before any I/O, or imme­
  51.      diately after a call to fflush.
  52.  
  53.      The other three calls are, in effect, simply aliases for calls to
  54.      sseettvvbbuuff().  The sseettbbuuff() function is exactly equivalent to the call
  55.  
  56.            setvbuf(stream, buf, buf ? _IOFBF: _IONBF, BUFSIZ);
  57.  
  58.      The sseettbbuuffffeerr() function is the same, except that the size of the buffer
  59.      is up to the caller, rather than being determined by the default BUFSIZ.
  60.      The sseettlliinneebbuuff() function is exactly equivalent to the call:
  61.  
  62.            setvbuf(stream, (char *)NULL, _IOLBF, 0);
  63.  
  64. SSEEEE AALLSSOO
  65.      fopen(3),  fclose(3),  fread(3),  malloc(3),  puts(3),  printf(3)
  66.  
  67. SSTTAANNDDAARRDDSS
  68.      The sseettbbuuff() and sseettvvbbuuff() functions conform to ANSI C3.159­1989 (``ANSI
  69.      C'').
  70.  
  71. BBUUGGSS
  72.      The sseettbbuuffffeerr() and sseettlliinneebbuuff() functions are not portable to versions
  73.      of BSD UNIX before 4.2BSD. On 4.2BSD and 4.3BSD systems, sseettbbuuff() always
  74.      uses a suboptimal buffer size and should be avoided.
  75.  
  76. 4th Berkeley Distribution        June 29, 1991                               2
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  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.  
  131.  
  132.  
  133.