On Thu, Jun 21, 2018 at 12:02:14AM +0200, Maximilian Pichler wrote:
> Your script is incorrect.
> 
> $ dd if=/dev/zero bs=1 | ./nread 1234567 | wc -c
> 0+2411 records in
> 0+2411 records out
> 2411 bytes transferred in 0.038 secs (62579 bytes/sec)
> 135+0 records in
> 135+0 records out
> 135 bytes transferred in 0.001 secs (126148 bytes/sec)
>     2546
> 

I have slightly modified the script to ease debugging. Also, slight
mod to read full blocks - I was not aware that strange things can
happen when two dd's feed one another in a pipe.

=>  (591 60):   cat nread
#!/bin/sh

# nread n - read up to n bytes from stdio, put them on to stdout

N=$1

dd bs=512 count=$((N / 512)) iflag=fullblock 2>/dev/null
dd bs=1 count=$((N % 512)) iflag=fullblock 2>/dev/null

=>  (591 61):   md5sum <nread
341fc16a2928e042f578f96c614b6062  -

=>  (591 65):   dd if=/dev/zero bs=1  2>/dev/null | /usr/bin/time nread 1234567 
| wc -c
0.14user 3.00system 0:03.55elapsed 88%CPU (0avgtext+0avgdata
768maxresident)k
0inputs+0outputs (0major+737minor)pagefaults 0swaps
1234567

=>  (591 66):  cat HUGE  | /usr/bin/time nread 1234567 | wc -c
0.00user 0.01system 0:00.02elapsed 54%CPU (0avgtext+0avgdata
768maxresident)k
0inputs+0outputs (0major+734minor)pagefaults 0swaps
1234567

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_r...@bigfoot.com             **

Reply via email to