1 #define _LARGEFILE64_SOURCE
15 unsigned buffer[BUFFER_N];
18 void set_buffer(int n)
21 for(i = 0; i < BUFFER_N; i++)
25 void write_big_sparse_file(int h)
30 int n = sizeof(buffer);
33 for(i = 0; i < 4000; i++) {
35 pos = lseek64(h, offset, SEEK_SET);
37 printf("mismatched seek pos %lld offset %lld\n",
42 wrote = write(h, buffer, n);
45 printf("mismatched write wrote %d n %d\n", wrote, n);
49 offset += (STRIDE * sizeof(buffer));
56 void verify_big_sparse_file(int h)
60 int main(int argc, char *argv[])
64 printf("Gimme a file name!\n");
68 handle = open(argv[1], O_CREAT | O_RDWR | O_TRUNC, S_IREAD | S_IWRITE);
71 perror("opening file");
75 write_big_sparse_file(handle);
76 system("sudo echo 3 > /proc/sys/vm/drop_caches");
77 verify_big_sparse_file(handle);