setbuf man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



SETBUF(3F)							    SETBUF(3F)

NAME
     setbuf, setvbuf, setbuffer, setlinebuf - assign buffering to a stream
     logical unit

FORTRAN SYNOPSIS
     #include <stdio.h>

     character *(BUFSIZ+8) buf
     integer type, size, setbuf, setvbuf, setbuffer,

     setbuf (lun, buf)

     setvbuf (lun, buf, type, size)

     setbuffer (lun, buf, size)

     setlinebuf (lun)

C SYNOPSIS
     #include <stdio.h>

     void setbuf (FILE *stream, char *buf);

     int setvbuf (FILE *stream, char *buf, int type, size_t size);

     int setbuffer (FILE *stream, char *buf, int size);

     int setlinebuf (FILE *stream);

DESCRIPTION
     The three types of buffering available are unbuffered, fully buffered,
     and line buffered.	 When an output stream unit is unbuffered, information
     appears on the destination file or terminal as soon as written; when it
     is fully buffered many characters are saved up and written as a block;
     when it is line buffered characters are saved up until a newline is
     encountered or input is read from stdin.  Fflush(3S) flush(3F) may be
     used to force the block out early.	 By default, output to a terminal is
     line buffered and all other input/output is fully buffered.

     Setbuf may be used after a stream unit has been opened but before it is
     read or written.  It causes the array pointed to by buf to be used
     instead of an automatically allocated buffer.  If buf is the NULL pointer
     input/output will be completely unbuffered.  If buf is not the NULL
     pointer and the indicated stream lun is open to a terminal, output will
     be line buffered.

     A constant BUFSIZ, defined in the <stdio.h> header file, indicates the
     assumed minimum length of buf.  It is wise to allocate a few words of
     extra space for buf, to allow for any synchronization problems resulting
     from signals occurring at inopportune times.  A good choice (and the one
     used by default in stdio(3s)) is

									Page 1

SETBUF(3F)							    SETBUF(3F)

	  char buf[BUFSIZ + 8]; character *(BUFSIZ + 8) buf

     Setvbuf may be used after a stream unit has been opened but before it is
     read or written.  Type determines how stream lun will be buffered.	 Legal
     values for type (defined in <stdio.h>) are:

     _IOFBF  causes input/output to be fully buffered.

     _IOLBF  causes output to be line buffered; the buffer will be flushed
	     when a newline is written, the buffer is full, or input is
	     requested.

     _IONBF  causes input/output to be completely unbuffered.

     If input/output is unbuffered, buf and size are ignored.  For buffered
     input/output, if buf is not the NULL pointer and size is greater than
     eight, the array it points to will be used for buffering.	In this case,
     size specifies the length of this array. The actual buffer will consist
     of the first size-8 bytes of buf (see the discussion of BUFSIZ above).
     If buf is the NULL pointer, or size is less than eight, space will be
     allocated to accommodate a buffer.	 This buffer will be of length BUFSIZ.
     (The actual space allocated will be eight bytes longer.)

     Setbuffer and setlinebuf are provided for compatibility with 4.3BSD.
     Setbuffer, an alternate form of setbuf, is used after a stream unit has
     been opened but before it is read or written.  The character array buf
     whose size is determined by the size argument is used instead of an
     automatically allocated buffer.  If buf is the constant pointer NULL,
     input/output will be completely unbuffered.

     Setlinebuf is used to change stdout or stderr from fully buffered or
     unbuffered to line buffered.  Unlike the other routines, it can be used
     at any time that the file descriptor is active.

SEE ALSO
     fopen(3S), fflush(3S), getc(3S), malloc(3C), putc(3S), stdio(3S).
     flush(3F), perror(3F).

DIAGNOSTICS
     Success is indicated by setvbuf and setbuffer returning zero.  a zero
     return value.  A non-zero return value indicates an error.	 The value of
     errno can be examined to determine the cause of the error.	 If it is
     necessary to allocate a buffer and the attempt is unsuccessful, setvbuf
     and setbuffer return a non-zero value. Setvbuf will also return non-zero
     if the value of type is not one of _IONBF, _IOLBF, or _IOFBF.

NOTES
     A common source of error is allocating buffer space as an ``automatic''
     variable in a code block, and then failing to close the stream unit in
     the same block.

     These functions cannot be used on direct unformatted units.

									Page 2

SETBUF(3F)							    SETBUF(3F)

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net