NAME
libstdbuf
—
preloaded library to change standard
streams initial buffering
DESCRIPTION
Thelibstdbuf
library is meant to be preloaded with the
LD_PRELOAD
environment variable to as to change the
initial buffering of standard input, standard output and standard error
streams.
Although you may load and configure this library manually, an utility, stdbuf(1), can be used to run a command with the appropriate environment variables.
ENVIRONMENT
Each stream can be configured independently through the following environment variables (values are defined below):
Each variable may take one of the following values:
- "0"
- unbuffered
- "L"
- line buffered
- "B"
- fully buffered with the default buffer size
- size
- fully buffered with a buffer of size bytes (suffixes 'k', 'M' and 'G' are accepted)
EXAMPLE
In the following example, the stdout stream of the
awk(1) command will be fully buffered by default because it does not
refer to a terminal. libstdbuf
is used to force it
to be line-buffered so
vmstat(8)'s output will not stall until the full buffer fills.
# vmstat 1 | LD_PRELOAD=/usr/lib/libstdbuf.so \ STDBUF_1=L awk '$2 > 1 || $3 > 1' | cat -n
See also the manpage of stdbuf(1) for a simpler way to do this.
HISTORY
The libstdbuf
library first appeared in
FreeBSD 8.4.
AUTHORS
The original idea of the libstdbuf
command
comes from Padraig Brady who implemented it in the
GNU coreutils. Jeremie Le Hen implemented it on
FreeBSD.