Annotation of 43BSDTahoe/man/man3/setbuf.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)setbuf.3    6.3 (Berkeley) 10/16/87
                      6: .\"
                      7: .TH SETBUF 3S  "October 16, 1987"
                      8: .UC 4
                      9: .SH NAME
                     10: setbuf, setbuffer, setlinebuf \- assign buffering to a stream
                     11: .SH SYNOPSIS
                     12: .B #include <stdio.h>
                     13: .PP
                     14: .B setbuf(stream, buf)
                     15: .br
                     16: .SM
                     17: .B FILE
                     18: .B *stream;
                     19: .br
                     20: .B char *buf;
                     21: .PP
                     22: .B setbuffer(stream, buf, size)
                     23: .br
                     24: .SM
                     25: .B FILE
                     26: .B *stream;
                     27: .br
                     28: .B char *buf;
                     29: .br
                     30: .B int size;
                     31: .PP
                     32: .B setlinebuf(stream)
                     33: .br
                     34: .SM
                     35: .B FILE
                     36: .B *stream;
                     37: .SH DESCRIPTION
                     38: The three types of buffering available are unbuffered, block buffered,
                     39: and line buffered.
                     40: When an output stream is unbuffered, information appears on the
                     41: destination file or terminal as soon as written;
                     42: when it is block buffered many characters are saved up and written as a block;
                     43: when it is line buffered characters are saved up until a newline is
                     44: encountered or input is read from stdin.
                     45: .I Fflush
                     46: (see 
                     47: .IR fclose (3S))
                     48: may be used to force the block out early.
                     49: Normally all files are block buffered.
                     50: A buffer is obtained from
                     51: .IR  malloc (3)
                     52: upon the first
                     53: .I getc
                     54: or
                     55: .IR  putc (3S)
                     56: on the file.
                     57: If the standard stream
                     58: .B stdout
                     59: refers to a terminal it is line buffered.
                     60: The standard stream
                     61: .B stderr
                     62: is always unbuffered.
                     63: .PP
                     64: .I Setbuf
                     65: is used after a stream has been opened but before it is read or written.
                     66: The character array
                     67: .I buf
                     68: is used instead of an automatically allocated buffer.  If
                     69: .I buf
                     70: is the constant pointer
                     71: .SM
                     72: .B NULL,
                     73: input/output will be completely unbuffered.
                     74: A manifest constant 
                     75: .SM
                     76: .B BUFSIZ
                     77: tells how big an array is needed:
                     78: .IP
                     79: .B char
                     80: buf[BUFSIZ];
                     81: .PP
                     82: .IR Setbuffer ,
                     83: an alternate form of 
                     84: .IR setbuf ,
                     85: is used after a stream has been opened but before it is read or written.
                     86: The character array
                     87: .I buf
                     88: whose size is determined by the 
                     89: .I size
                     90: argument is used instead of an automatically allocated buffer.  If
                     91: .I buf
                     92: is the constant pointer
                     93: .SM
                     94: .BR NULL ,
                     95: input/output will be completely unbuffered.
                     96: .PP
                     97: .I Setlinebuf
                     98: is used to change
                     99: .I stdout
                    100: or
                    101: .I stderr
                    102: from block buffered or unbuffered to line buffered.
                    103: Unlike
                    104: .I setbuf
                    105: and
                    106: .I setbuffer
                    107: it can be used at any time that the file descriptor is active.
                    108: .PP
                    109: A file can be changed from unbuffered or line buffered to block buffered
                    110: by using
                    111: .I freopen
                    112: (see
                    113: .IR fopen (3S)).
                    114: A file can be changed from block buffered or line buffered to unbuffered
                    115: by using
                    116: .I freopen
                    117: followed by
                    118: .I setbuf
                    119: with a buffer argument of 
                    120: .SM
                    121: .BR NULL .
                    122: .SH "SEE ALSO"
                    123: fopen(3S),
                    124: getc(3S),
                    125: putc(3S),
                    126: malloc(3),
                    127: fclose(3S),
                    128: puts(3S),
                    129: printf(3S),
                    130: fread(3S)
                    131: .SH BUGS
                    132: The
                    133: .I setbuffer
                    134: and
                    135: .I setlinebuf
                    136: functions are not portable to non-4.2BSD versions of UNIX.
                    137: On 4.2BSD and 4.3BSD systems,
                    138: .I setbuf
                    139: always uses a suboptimal buffer size and should be avoided.
                    140: .I Setbuffer
                    141: is not usually needed
                    142: as the default file I/O buffer sizes are optimal.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.