* Process writes blocks to a
* file in a random order.
printf("usage: %s file max-file-size #writes\n", argv
[0]);
fd
= open(argv
[1], O_WRONLY
|O_CREAT
|O_TRUNC
, 0644);
buf
= malloc(sb
.st_blksize
);
printf("Couldn't allocate i/o buffer.\n");
/* file size is in megabytes */
maxblocks
= atoi(argv
[2]) * ((1024 * 1024) / sb
.st_blksize
);
printf("%d random writes (block size %d)\n", niter
, sb
.st_blksize
);
for (i
= 0; i
< niter
; i
++) {
bn
= random() % maxblocks
;
lseek(fd
, bn
* sb
.st_blksize
, L_SET
);
write(fd
, buf
, sb
.st_blksize
);