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",
41 wrote = write(h, buffer, n);
44 printf("mismatched write wrote %d n %d\n", wrote, n);
48 offset += (STRIDE * sizeof(buffer));
55 void verify_big_sparse_file(int h)
59 int main(int argc, char *argv[])
63 printf("Gimme a file name!\n");
67 handle = open(argv[1], O_CREAT | O_RDWR | O_TRUNC, S_IREAD | S_IWRITE);
70 perror("opening file");
74 write_big_sparse_file(handle);
75 system("sudo echo 3 > /proc/sys/vm/drop_caches");
76 verify_big_sparse_file(handle);