diff options
author | aiju <aiju@phicode.de> | 2011-07-19 16:42:33 +0200 |
---|---|---|
committer | aiju <aiju@phicode.de> | 2011-07-19 16:42:33 +0200 |
commit | 8f6173c8bd347defffeafe1526e0bc5bca36c492 (patch) | |
tree | bb204db5cb40faa9c041d4485fb4234534f552d9 /sys/src/cmd | |
parent | 943b0d46099e72a9e06efdf855d37ffe546b3ff5 (diff) |
added aux/seek
Diffstat (limited to 'sys/src/cmd')
-rw-r--r-- | sys/src/cmd/aux/mkfile | 1 | ||||
-rw-r--r-- | sys/src/cmd/aux/seek.c | 33 |
2 files changed, 34 insertions, 0 deletions
diff --git a/sys/src/cmd/aux/mkfile b/sys/src/cmd/aux/mkfile index 943ae06f2..3cc2a3dd0 100644 --- a/sys/src/cmd/aux/mkfile +++ b/sys/src/cmd/aux/mkfile @@ -31,6 +31,7 @@ TARG=\ rdwr\ reboot\ searchfs\ + seek\ statusbar\ stub\ tablet\ diff --git a/sys/src/cmd/aux/seek.c b/sys/src/cmd/aux/seek.c new file mode 100644 index 000000000..134463b91 --- /dev/null +++ b/sys/src/cmd/aux/seek.c @@ -0,0 +1,33 @@ +#include <u.h> +#include <libc.h> + +void +main(int argc, char **argv) +{ + char buf[512]; + vlong size; + vlong pos; + vlong ns; + int fd; + int i; + + if(argc != 2) { + fprint(2, "usage: %s /dev/sd??/data\n", argv[0]); + exits("usage"); + } + + srand(time(0)); + fd = open(argv[1], OREAD); + if(fd < 0) + sysfatal("open: %r"); + size = seek(fd, 0, 2) / 512; + ns = nsec(); + for(i=0;i<100;i++) { + pos = (vlong)(frand() * size); + if(pread(fd, buf, 512, 512 * pos) < 512) + sysfatal("read: %r"); + } + ns = nsec() - ns; + print("%.3g\n", ((double)ns)/100000000); + exits(nil); +} |