1 #define _LARGEFILE64_SOURCE
15 unsigned xxbuffer[BUFFER_N];
18 void set_buffer(int n)
21 for(i = 0; i < BUFFER_N; i++)
26 void verify_big_sparse_file(int h)
28 unsigned check_buffer[BUFFER_N];
32 int n = sizeof(check_buffer);
34 const char * check_type;
35 int checks_failed = 0;
36 int checks_passed = 0;
38 for(i = 0; i < N_WRITES * STRIDE; i++) {
41 memset(xxbuffer,0, n);
43 check_type = "buffer";
46 //printf("%s checking %lld\n", check_type, offset);
47 pos = lseek64(h, offset, SEEK_SET);
49 printf("mismatched seek pos %lld offset %lld\n",
54 result = read(h, check_buffer, n);
57 printf("mismatched read result %d n %d\n", result, n);
64 if(memcmp(xxbuffer, check_buffer, n)) {
67 printf("buffer at %lld mismatches\n", pos);
69 for(j = 0; j < 20; j++)
70 printf(" %d",xxbuffer[j]);
72 printf("check_buffer ");
73 for(j = 0; j < 20; j++)
74 printf(" %d",check_buffer[j]);
82 offset += sizeof(xxbuffer);
85 printf("%d checks passed, %d checks failed\n", checks_passed, checks_failed);
90 int main(int argc, char *argv[])
95 printf("Gimme a file name!\n");
99 handle = open(argv[1], O_RDONLY);
102 perror("opening file");
106 verify_big_sparse_file(handle);
108 printf("Job done\n");