On Mon, 14 Mar 2022, Florian Zieboll via Dng wrote:

Reading the pipe man page ('man 7 pipe') tells us that there are two
ends to a pipe: read and write. Each of them are affected by the
buffer settings. Most likely 'rsync' outputs is being buffered before
landing on 'tr'.

So I assume that it is 'tr' which recognizes that rsync's output is
already buffered and thus keeps this setting - while the output of 'dd'
comes in another format and 'tr' decides that it would be a good idea
to 4k-buffer it before passing it on?


The 4k buffer would be the "default", which may differ per system.
Reading the man page (again) tells me that the default pipe capacity is
16 pages (65,536 bytes in a system with a page size of 4096 bytes). The
4k buffer thing was valid for old kernels.


Looking at how you use stdbuff, you seem to only
define the output (write end) of the 'tr' command.

Yes, unbuffering the input of 'tr' (from 'dd') does not have any
effect.

There's probably buffer between 'rsync' and 'tr'. Checkout the
documentation for 'rsync --outbuf=N|L|B'.

Cheers,
                Ludovic

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to