NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: bin/41072: dd ignores bs= when if= comes from stdin
SODA Noriyuki <soda%yuruyuru.net@localhost> writes:
>> try
>> something.... | dd of=/dev/somepartition bs=10m progress=1
>> and note that you get way too many dots printed.
>
> That's not a bug, but documented behavior:
>
> bs=n Set both input and output block size, superseding
> the ibs and obs operands. If no conversion values
> other than noerror, notrunc or sync are specified,
> then each input block is copied to the output as
> a single block without any aggregation of short
> blocks.
>
> Please note the following sentence, especially:
> If no conversion values other than noerror, notrunc or sync
> are specified, then each input block is copied to the output
> as a single block without any aggregation of short blocks.
> i.e. In this case, dd preserve the return size of the read(2)
> system calls at the corresponding write(2) operation.
>
> This behavior is needed to copy a variable-blocksize tape with
> preserving each size of tape blocks.
Okay, the phrase "without any aggregation of short blocks" is somewhat
confusing to me. I would suggest that it be explained a bit
better. How about adding, at the end of the paragraph:
This behavior is needed to copy a variable-blocksize tape with
preserving each size of tape blocks. However, it may result in
unexpected behavior when short reads are likely, such as when
reading from a pipe on stdin. In such cases, set obs= alone.
Actually, though, is there a conv= setting that says "always
aggregate"? (I don't seem to see one.)
Perry
Home |
Main Index |
Thread Index |
Old Index