setlinebuf()
Assign line buffering to a stream
Synopsis:
#include <unix.h>
int setlinebuf( FILE *iop );
Arguments:
- iop
- The stream that you want to use line buffering.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The setbuffer() and setlinebuf() functions assign buffering to a stream. The types of buffering available are:
- Unbuffered
- Information appears on the destination file or terminal as soon as written.
- Block-buffered
- Many characters are saved and written as a block.
- Line-buffered
- Characters are saved until either a newline is encountered or input is read from stdin.
You can use fflush() to force the block out early. Normally all files are block-buffered. A buffer is obtained from malloc() when the first getc() or putc() is performed on the file. If the standard stream stdout refers to a terminal, it's line-buffered. The standard stream stderr is unbuffered by default.
You can use setlinebuf() to change the buffering on a stream from block-buffered or unbuffered to line-buffered. Unlike setbuffer(), you can call setlinebuf() at any time that the stream iop is active.
You can use freopen(). to change a stream from unbuffered or line-buffered to block buffered. To change a stream from block-buffered or line-buffered to unbuffered, call freopen(), and then call setvbuf() with a buffer argument of NULL.
Returns:
No useful value.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | No |
Thread | Yes |