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 **