LIBSTDBUF(3) BSD Library Functions Manual LIBSTDBUF(3)NAME
libstdbuf -- preloaded library to change standard streams initial buffering
DESCRIPTION
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 environ-
ment variables.
ENVIRONMENT
Each stream can be configured independently through the following environment variables (values are defined below):
_STDBUF_I
Initial buffering definition for the standard input stream
_STDBUF_O
Initial buffering definition for the standard output stream
_STDBUF_E
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)
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.
BSD April 28, 2012 BSD
Check Out this Related Man Page
STDBUF(1) User Commands STDBUF(1)NAME
stdbuf - Run COMMAND, with modified buffering operations for its standard streams.
SYNOPSIS
stdbuf OPTION... COMMAND
DESCRIPTION
Run COMMAND, with modified buffering operations for its standard streams.
Mandatory arguments to long options are mandatory for short options too.
-i, --input=MODE
adjust standard input stream buffering
-o, --output=MODE
adjust standard output stream buffering
-e, --error=MODE
adjust standard error stream buffering
--help display this help and exit
--version
output version information and exit
If MODE is 'L' the corresponding stream will be line buffered. This option is invalid with standard input.
If MODE is '0' the corresponding stream will be unbuffered.
Otherwise MODE is a number which may be followed by one of the following: KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T,
P, E, Z, Y. In this case the corresponding stream will be fully buffered with the buffer size set to MODE bytes.
NOTE: If COMMAND adjusts the buffering of its standard streams ('tee' does for example) then that will override corresponding changes by
'stdbuf'. Also some filters (like 'dd' and 'cat' etc.) don't use streams for I/O, and are thus unaffected by 'stdbuf' settings.
EXAMPLES
tail -f access.log | stdbuf -oL cut -d ' ' -f1 | uniq
This will immediately display unique entries from access.log
BUGS
On GLIBC platforms, specifying a buffer size, i.e., using fully buffered mode will result in undefined operation.
AUTHOR
Written by Padraig Brady.
REPORTING BUGS
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Report stdbuf translation bugs to <http://translationproject.org/team/>
COPYRIGHT
Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
Full documentation at: <http://www.gnu.org/software/coreutils/stdbuf>
or available locally via: info '(coreutils) stdbuf invocation'
GNU coreutils 8.28 January 2018 STDBUF(1)