/* * Exemplo de arquivo mapeado em memória */ #include #include #include #include #include #include #include #include int main(int argc, char** argv) { int fd; char* map; struct stat buf; int i; stat(argv[1], &buf); if ((fd = open(argv[1], O_RDWR, 0644)) == -1) { perror("open"); return 0; } if ((map = mmap (NULL, buf.st_size, PROT_WRITE | PROT_READ, MAP_SHARED, fd, 0)) == (void*) -1) { perror("mmap"); exit(-1); } for (i = 0; i < buf.st_size; i++) printf("%c", map[i]); munmap(map, buf.st_size); close(fd); return 0; }