Expand the description of --no-splice.

This commit is contained in:
Andrew Wood
2026-05-22 21:43:30 +01:00
parent 2d08b3208a
commit 7e99aa5b13
2 changed files with 30 additions and 18 deletions
+15 -9
View File
@@ -290,16 +290,22 @@ better with specific buffer sizes such as 1024.
Implies \*(lq\fB\-\-no\-splice\fR\*(rq.
.TP
.B \-C, \-\-no-splice
Never use \fBsplice\fR(2), even if it would normally be possible.
The \fBsplice\fR(2) system call is a more efficient way of transferring data
from or to a pipe than regular \fBread\fR(2) and \fBwrite\fR(2), but means
that the transfer buffer may not be used.
This prevents \*(lq\fB\-\-buffer\-percent\fR\*(rq and
\*(lq\fB\-\-last\-written\fR\*(rq from working, cannot work with
\*(lq\fB\-\-sparse\fR\*(rq, and makes \*(lq\fB\-\-buffer\-size\fR\*(rq
redundant, so using any of those options automatically switches on
Prevent the use of \fBsplice\fR(2), a system call normally used on systems
that support it to improve efficiency by eliminating the need for a transfer
buffer.
.IP
In the default case that \fBsplice\fR(2) is used, the lack of a transfer
buffer prevents \*(lq\fB\-\-buffer\-percent\fR\*(rq and
\*(lq\fB\-\-last\-written\fR\*(rq from working and makes
\*(lq\fB\-\-buffer\-size\fR\*(rq redundant, so using any of those options
automatically switches on \*(lq\fB\-\-no\-splice\fR\*(rq.
.IP
Sparse files cannot be written with \fBsplice\fR(2), so using
\*(lq\fB\-\-sparse\fR\*(rq automatically switches on
\*(lq\fB\-\-no\-splice\fR\*(rq.
Switching on this option results in a small loss of transfer efficiency.
.IP
Switching on \*(lq\fB\-\-no\-splice\fR\*(rq results in a small loss of
transfer efficiency.
It has no effect on systems where \fBsplice\fR(2) is unavailable.
.TP
.BI \-J\ BYTES \fR,\ \fB\-\-pipe\-buffer\-size\ BYTES
+15 -9
View File
@@ -297,16 +297,22 @@ are explicitly switched on will be shown.
**-C, \--no-splice**
: Never use **splice**(2), even if it would normally be possible. The
**splice**(2) system call is a more efficient way of transferring
data from or to a pipe than regular **read**(2) and **write**(2),
but means that the transfer buffer may not be used. This prevents
"**\--buffer-percent**" and "**\--last-written**" from working,
cannot work with "**\--sparse**", and makes "**\--buffer-size**"
: Prevent the use of **splice**(2), a system call normally used on
systems that support it to improve efficiency by eliminating the
need for a transfer buffer.
In the default case that **splice**(2) is used, the lack of a
transfer buffer prevents "**\--buffer-percent**" and
"**\--last-written**" from working and makes "**\--buffer-size**"
redundant, so using any of those options automatically switches on
"**\--no-splice**". Switching on this option results in a small loss
of transfer efficiency. It has no effect on systems where
**splice**(2) is unavailable.
"**\--no-splice**".
Sparse files cannot be written with **splice**(2), so using
"**\--sparse**" automatically switches on "**\--no-splice**".
Switching on "**\--no-splice**" results in a small loss of transfer
efficiency. It has no effect on systems where **splice**(2) is
unavailable.
**-J BYTES, \--pipe-buffer-size BYTES**