Next: Directory reading
Up: Unix & Linux
Previous: pthread
int fd = open(argv[1], O_RDONLY);
assert(fd >= 0);
// Get size.
struct stat sb;
ec = fstat(fd, &sb);
assert(ec == 0);
off_t sz = sb.st_size;
// Map it in.
char *doc = (char *) mmap(0, sz, PROT_READ, MAP_SHARED, fd, 0);
assert(doc != 0);
// Get it paged in.
// to make sure all the data are in memeory
char *p = doc;
int c = 0;
for (int i = 0; i < sz; i++) {
// This below is just so compiler won't optimize
// anything away.
if (p[i] == 0) {
c++;
}
}
Wei Lu
2007-11-06