#include #include #include #include #include int main(int argc, char ** argv){ int file_descriptor = open(argv[1], O_RDONLY); if(file_descriptor < 0){ perror("open"); return 1; } struct stat fs; // TODO: Check for errors fstat(file_descriptor, &fs); size_t begin = fs.st_size/3; size_t end = 2 * fs.st_size/3; char *data = mmap(0, end, PROT_READ, MAP_SHARED, file_descriptor, 0); if(data == MAP_FAILED) { perror("mmap"); return 1; } close(file_descriptor); write(1, data + begin, end-begin); munmap(data, end); return 0; }