xref: /freebsd/usr.bin/stdbuf/stdbuf.1 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
1*6486b015SJeremie Le Hen.\" Copyright (c) 2012 Jeremie Le Hen <jlh@FreeBSD.org>
2*6486b015SJeremie Le Hen.\" All rights reserved.
3*6486b015SJeremie Le Hen.\"
4*6486b015SJeremie Le Hen.\" Redistribution and use in source and binary forms, with or without
5*6486b015SJeremie Le Hen.\" modification, are permitted provided that the following conditions
6*6486b015SJeremie Le Hen.\" are met:
7*6486b015SJeremie Le Hen.\" 1. Redistributions of source code and documentation must retain the above
8*6486b015SJeremie Le Hen.\"    copyright notice, this list of conditions and the following disclaimer.
9*6486b015SJeremie Le Hen.\" 2. Redistributions in binary form must reproduce the above copyright
10*6486b015SJeremie Le Hen.\"    notice, this list of conditions and the following disclaimer in the
11*6486b015SJeremie Le Hen.\"    documentation and/or other materials provided with the distribution.
12*6486b015SJeremie Le Hen.\"
13*6486b015SJeremie Le Hen.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14*6486b015SJeremie Le Hen.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15*6486b015SJeremie Le Hen.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16*6486b015SJeremie Le Hen.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17*6486b015SJeremie Le Hen.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18*6486b015SJeremie Le Hen.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19*6486b015SJeremie Le Hen.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20*6486b015SJeremie Le Hen.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21*6486b015SJeremie Le Hen.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22*6486b015SJeremie Le Hen.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23*6486b015SJeremie Le Hen.\" SUCH DAMAGE.
24*6486b015SJeremie Le Hen.\"
25*6486b015SJeremie Le Hen.Dd April 28, 2012
26*6486b015SJeremie Le Hen.Dt STDBUF 1
27*6486b015SJeremie Le Hen.Os
28*6486b015SJeremie Le Hen.Sh NAME
29*6486b015SJeremie Le Hen.Nm stdbuf
30*6486b015SJeremie Le Hen.Nd change standard streams initial buffering
31*6486b015SJeremie Le Hen.Sh SYNOPSIS
32*6486b015SJeremie Le Hen.Nm
33*6486b015SJeremie Le Hen.Op Fl e Ar bufdef
34*6486b015SJeremie Le Hen.Op Fl i Ar bufdef
35*6486b015SJeremie Le Hen.Op Fl o Ar bufdef
36*6486b015SJeremie Le Hen.Op Ar command Op ...
37*6486b015SJeremie Le Hen.Sh DESCRIPTION
38*6486b015SJeremie Le Hen.Nm
39*6486b015SJeremie Le Henis used to change the initial buffering of standard input,
40*6486b015SJeremie Le Henstandard output and/or standard error streams for
41*6486b015SJeremie Le Hen.Ar command .
42*6486b015SJeremie Le HenIt relies on
43*6486b015SJeremie Le Hen.Xr libstdbuf 3
44*6486b015SJeremie Le Henwhich is loaded and configured by
45*6486b015SJeremie Le Hen.Nm
46*6486b015SJeremie Le Henthrough environment variables.
47*6486b015SJeremie Le Hen.Pp
48*6486b015SJeremie Le HenThe options are as follows:
49*6486b015SJeremie Le Hen.Bl -tag -width Ds
50*6486b015SJeremie Le Hen.It Fl e Ar bufdef
51*6486b015SJeremie Le HenSet initial buffering of the standard error stream for
52*6486b015SJeremie Le Hen.Ar command
53*6486b015SJeremie Le Henas defined by
54*6486b015SJeremie Le Hen.Ar bufdef
55*6486b015SJeremie Le Hen.Pq see Sx BUFFER DEFINITION .
56*6486b015SJeremie Le Hen.It Fl i Ar bufdef
57*6486b015SJeremie Le HenSet initial buffering of the standard input stream for
58*6486b015SJeremie Le Hen.Ar command
59*6486b015SJeremie Le Henas defined by
60*6486b015SJeremie Le Hen.Ar bufdef
61*6486b015SJeremie Le Hen.Pq see Sx BUFFER DEFINITION .
62*6486b015SJeremie Le Hen.It Fl o Ar bufdef
63*6486b015SJeremie Le HenSet initial buffering of the standard output stream for
64*6486b015SJeremie Le Hen.Ar command
65*6486b015SJeremie Le Henas defined by
66*6486b015SJeremie Le Hen.Ar bufdef
67*6486b015SJeremie Le Hen.Pq see Sx BUFFER DEFINITION .
68*6486b015SJeremie Le Hen.El
69*6486b015SJeremie Le Hen.Sh BUFFER DEFINITION
70*6486b015SJeremie Le HenBuffer definition is the same as in
71*6486b015SJeremie Le Hen.Xr libstdbuf 3 :
72*6486b015SJeremie Le Hen.Bl -tag -width size -offset indent
73*6486b015SJeremie Le Hen.It Qq 0
74*6486b015SJeremie Le Henunbuffered
75*6486b015SJeremie Le Hen.It Qq L
76*6486b015SJeremie Le Henline buffered
77*6486b015SJeremie Le Hen.It Qq B
78*6486b015SJeremie Le Henfully buffered with the default buffer size
79*6486b015SJeremie Le Hen.It Ar size
80*6486b015SJeremie Le Henfully buffered with a buffer of
81*6486b015SJeremie Le Hen.Ar size
82*6486b015SJeremie Le Henbytes (suffixes 'k', 'M' and 'G' are accepted)
83*6486b015SJeremie Le Hen.El
84*6486b015SJeremie Le Hen.Sh EXAMPLES
85*6486b015SJeremie Le HenIn the following example, the stdout stream of the
86*6486b015SJeremie Le Hen.Xr awk 1
87*6486b015SJeremie Le Hencommand
88*6486b015SJeremie Le Henwill be fully buffered by default because it does not refer
89*6486b015SJeremie Le Hento a terminal.
90*6486b015SJeremie Le Hen.Nm
91*6486b015SJeremie Le Henis used to force it to be line-buffered so
92*6486b015SJeremie Le Hen.Xr vmstat 8 Ns 's
93*6486b015SJeremie Le Henoutput will not stall until the full buffer fills.
94*6486b015SJeremie Le Hen.Bd -literal -offset indent
95*6486b015SJeremie Le Hen# vmstat 1 | stdbuf -o L awk '$2 > 1 || $3 > 1' | cat -n
96*6486b015SJeremie Le Hen.Ed
97*6486b015SJeremie Le Hen.Sh SEE ALSO
98*6486b015SJeremie Le Hen.Xr libstdbuf 3 ,
99*6486b015SJeremie Le Hen.Xr setvbuf 3
100*6486b015SJeremie Le Hen.Sh HISTORY
101*6486b015SJeremie Le HenThe
102*6486b015SJeremie Le Hen.Nm
103*6486b015SJeremie Le Henutility first appeared in
104*6486b015SJeremie Le Hen.Fx 8.4 .
105*6486b015SJeremie Le Hen.Sh AUTHORS
106*6486b015SJeremie Le Hen.An -nosplit
107*6486b015SJeremie Le HenThe original idea of the
108*6486b015SJeremie Le Hen.Nm
109*6486b015SJeremie Le Hencommand comes from
110*6486b015SJeremie Le Hen.An Padraig Brady
111*6486b015SJeremie Le Henwho implemented it in the GNU coreutils.
112*6486b015SJeremie Le Hen.An Jeremie Le Hen
113*6486b015SJeremie Le Henimplemented it on
114*6486b015SJeremie Le Hen.Fx .
115