tail head cat sleep
QR code linking to this page

Manual Pages  — LIBSTDBUF


libstdbuf – preloaded library to change standard streams initial buffering



The libstdbuf 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.


Each stream can be configured independently through the following environment variables (values are defined below):
  Initial buffering definition for the standard input stream
  Initial buffering definition for the standard output stream
  Initial buffering definition for the standard error stream

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)


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.


The libstdbuf library first appeared in FreeBSD 8.4 .


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 .

LIBSTDBUF (3) April 28, 2012

tail head cat sleep
QR code linking to this page

Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

Computer science would have progressed much further and faster if all of the time and effort that has been spent maintaining and nurturing Unix had been spent on a sounder operating system.
— The Unix Haters' handbook