In the previous version of f3write, fdatasync(2) was used to
show the progress printouts smoothly.
However, it slows down a lot the execution, and hurts
the writing speed measurement.
This new version finds out what is the writing speed of
the memory card being tested using an algorithm that reseables
TCP's congestion control algorithm, and keeps writing at that
speed; this allows smooth progress printouts.
f3write is even faster now!
* f3read
As long as the kernel honors our advice, f3read doesn't
ever read data from the system cache instead of reading
from the memory card, and reading speed measurement is
improved.
* f3write
Progress printout goes smoothly now.
See file Documentation/CodingStyle in Linux's source code
for a reference of the style.
Used "indent -kr -i8" to help out.
Added a .gitignore to the repository.
Nobody has reported this "bug", neither have I seen it coming out,
but I'm fixing it anyway.
It's based on Kenneth Arnold's fork of F3, which is available here:
https://github.com/kcarnold/f3
I also added a few lines in README.
Fixed some warning issued by GCC when compiling f3read.c on 64bits machines.
Nicolai Abruzzese was the first one to report this issue.
The outputs that he obtained were as follows:
f3read.c: In function 'report':
f3read.c:126: warning: format '%llu' expects type 'long long unsigned int', but argument 5 has type 'uint64_t'
f3read.c: In function 'iterate_path':
f3read.c:166: warning: format '%llu' expects type 'long long unsigned int', but argument 2 has type 'uint64_t'
f3read.c:166: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'uint64_t'
f3read.c:166: warning: format '%llu' expects type 'long long unsigned int', but argument 4 has type 'uint64_t'
f3read.c:166: warning: format '%llu' expects type 'long long unsigned int', but argument 5 has type 'uint64_t'