setvbuf man page on SmartOS

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

SETBUF(3C)							    SETBUF(3C)

NAME
       setbuf, setvbuf - assign buffering to a stream

SYNOPSIS
       #include <stdio.h>

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

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

DESCRIPTION
       The setbuf() function may be used after the stream pointed to by stream
       (see Intro(3)) is 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 com‐
       pletely	unbuffered.   The  constant   BUFSIZ, defined in the <stdio.h>
       header, indicates the size of the array pointed to by buf.

       The setvbuf() function may be used after a stream is opened  but before
       it  is  read or written.	 The type argument determines how  stream will
       be buffered. Legal values for  type (defined in <stdio.h>) are:

       _IOFBF
		 Input/output to be fully buffered.

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

       _IONBF
		 Input/output to be completely unbuffered.

       If buf is not the null pointer, the array it points to will be used for
       buffering,  instead  of	an  automatically  allocated buffer.  The size
       argument specifies the size of the buffer to be used.  If  input/output
       is unbuffered,  buf and	size are ignored.

       For a further discussion of buffering, see stdio(3C).

RETURN VALUES
       If an illegal value for	type is provided, setvbuf() returns a non-zero
       value.	Otherwise, it returns 0.

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

       When using setbuf(), buf should always be sized using BUFSIZ.   If  the
       array  pointed  to  by buf is larger than BUFSIZ, a portion of buf will
       not be used.  If buf is smaller than BUFSIZ, other memory may be	 unex‐
       pectedly overwritten.

       Parts  of  buf will be used for internal bookkeeping of the stream and,
       therefore, buf will contain less than size bytes when full. It is  rec‐
       ommended that  stdio(3C) be used to handle buffer allocation when using
       setvbuf().

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │Interface Stability │ Standard	      │
       ├────────────────────┼─────────────────┤
       │MT-Level	    │ MT-Safe	      │
       └────────────────────┴─────────────────┘

SEE ALSO
       fopen(3C), getc(3C), malloc(3C),	 putc(3C),  stdio(3C),	attributes(5),
       standards(5)

				 Aug 14, 2002			    SETBUF(3C)
[top]

List of man pages available for SmartOS

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