1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 //#define RANDOM(K) 1+(long)(K*rand()/(RAND_MAX+1.0));
6 #define RANDOM(K) 1+(random()%K);
7
main(int argc,char * argv[])8 int main(int argc, char *argv[]) {
9 FILE *fd;
10 long posa = 0, posb = 0;
11 long seed = 0;
12 int valuea = 0, valueb = 0;
13 long size;
14 int b = 0;
15
16 // Inits the rng
17 if (argv[2])
18 b = sscanf(argv[2], "%lu", &seed);
19 if (b == 1)
20 srandom(seed);
21 else
22 srandom((long)time(0));
23
24 fd = fopen(argv[1], "r+");
25 fseek(fd, 0, SEEK_END);
26 size = ftell(fd);
27 // GETS
28 while (valuea == valueb) {
29 posa = RANDOM(size);
30 posb = RANDOM(size);
31 fseek(fd, posa, SEEK_SET);
32 valuea = fgetc(fd);
33 fseek(fd, posb, SEEK_SET);
34 valueb = fgetc(fd);
35 }
36 // PUTS
37 fseek(fd, posa, SEEK_SET);
38 fputc(valueb, fd);
39 fseek(fd, posb, SEEK_SET);
40 fputc(valuea, fd);
41 fclose(fd);
42 printf("%lu\n", random());
43 //printf("Pos: %u\tValue: %u\n", pos, value);
44 }
45