28 static uint32_t
ran(
void)
33 int main(
int argc,
char **argv)
39 printf(
"USAGE: trasher <filename> <count> <maxburst> <seed>\n");
43 f = fopen(argv[1],
"rb+");
48 count = atoi(argv[2]);
49 maxburst = atoi(argv[3]);
50 state = atoi(argv[4]);
52 fseek(f, 0, SEEK_END);
54 fseek(f, 0, SEEK_SET);
57 int burst = 1 +
ran() * (uint64_t) (abs(maxburst) - 1) / UINT32_MAX;
58 int pos =
ran() * (uint64_t) length / UINT32_MAX;
59 if (fseek(f, pos, SEEK_SET) < 0) {
60 fprintf(stderr,
"seek failed\n");
67 if (pos + burst > length)
71 int val =
ran() * 256ULL / UINT32_MAX;
76 fwrite(&val, 1, 1, f);