120 lines
1.7 KiB
Plaintext
120 lines
1.7 KiB
Plaintext
|
.TH PUMP 1
|
||
|
.SH NAME
|
||
|
pump \- copy asynchronously via a large circular buffer
|
||
|
.SH SYNOPSIS
|
||
|
.B pump
|
||
|
[
|
||
|
.B -b
|
||
|
.I iando
|
||
|
] [
|
||
|
.B -d
|
||
|
.I sleepms
|
||
|
] [
|
||
|
.B -f
|
||
|
.I ofile
|
||
|
] [
|
||
|
.B -i
|
||
|
.I ireadsize
|
||
|
] [
|
||
|
.B -k
|
||
|
.I KB-buf
|
||
|
] [
|
||
|
.B -o
|
||
|
.I owritesize
|
||
|
] [
|
||
|
.B -s
|
||
|
.I start-KB
|
||
|
] [
|
||
|
.I file
|
||
|
\&... ]
|
||
|
.SH DESCRIPTION
|
||
|
.I Pump
|
||
|
copies
|
||
|
.IR files
|
||
|
(or standard input if none)
|
||
|
to standard output
|
||
|
by using two processes,
|
||
|
one reading and one writing,
|
||
|
sharing a large circular buffer,
|
||
|
thus permitting the reading process to
|
||
|
get ahead of the writing process if the
|
||
|
output device is slow (e.g., an optical disc).
|
||
|
This in turn can keep the output device busy.
|
||
|
The pipeline
|
||
|
.L "dd | dd"
|
||
|
can approximate this, but pipe buffering is limited to 64K
|
||
|
bytes, which is fairly modest.
|
||
|
.PP
|
||
|
Options are:
|
||
|
.TF \fL-m
|
||
|
.TP
|
||
|
.B -b
|
||
|
sets the size of
|
||
|
.I read
|
||
|
and
|
||
|
.I write
|
||
|
operations to
|
||
|
.I iando
|
||
|
bytes.
|
||
|
The default size is 8 kilobytes.
|
||
|
.TP
|
||
|
.B -d
|
||
|
causes the output process to sleep for
|
||
|
.I sleepms
|
||
|
milliseconds initially, giving the reading
|
||
|
process time to accumulate data in the buffer.
|
||
|
.TP
|
||
|
.B -f
|
||
|
writes
|
||
|
.I ofile
|
||
|
rather than standard output
|
||
|
.TP
|
||
|
.B -i
|
||
|
sets the size of
|
||
|
.I read
|
||
|
operations to
|
||
|
.I ireadsize
|
||
|
bytes.
|
||
|
.TP
|
||
|
.B -k
|
||
|
allocates a circular buffer of
|
||
|
.I KB-buf
|
||
|
kilobytes rather than the default
|
||
|
5000 kilobytes.
|
||
|
.TP
|
||
|
.B -o
|
||
|
sets the size of
|
||
|
.I write
|
||
|
operations to
|
||
|
.I owritesize
|
||
|
bytes.
|
||
|
.TP
|
||
|
.B -s
|
||
|
prevents output until
|
||
|
.I start-KB
|
||
|
kilobytes have been read.
|
||
|
.SH EXAMPLES
|
||
|
Append a
|
||
|
.IR venti (8)
|
||
|
arena to a DVD or BD quickly.
|
||
|
.PD 0
|
||
|
.IP
|
||
|
.EX
|
||
|
cdfs
|
||
|
venti/rdarena arena0 arena.3 |
|
||
|
pump -b 65536 -k 51200 >/mnt/cd/wd/arena.3
|
||
|
.EE
|
||
|
.PD
|
||
|
.\" .SH FILES
|
||
|
.SH SOURCE
|
||
|
.B /sys/src/cmd/pump.c
|
||
|
.SH SEE ALSO
|
||
|
.IR cp (1),
|
||
|
.IR dd (1),
|
||
|
.IR ecp (1),
|
||
|
.IR cdfs (4)
|
||
|
.SH BUGS
|
||
|
.I Pump
|
||
|
processes spin while waiting for the circular buffer
|
||
|
to fill or drain.
|