/* * Mais um teste com mmap. Utilizar um filesystem montado em um arquivo como em: * * $ dd if=/dev/zero of=hd.dmp bs=1k count=4 * $ mkdir -p mnt * $ sudo mount -t ext2 -o loop hd.dmp mnt * * e parar o programa antes da alteração ser propagada para o disco. */ #include #include #include #include #include #include #include #define MSIZE 100 int main() { int fd; char* s; if ((fd = open ("mnt/teste.txt", O_CREAT | O_RDWR), 0600) == -1) { perror("open"); exit(1); } if ((s = mmap (NULL, MSIZE, PROT_WRITE, MAP_SHARED, fd, 0)) == (void*) -1) { perror("mmap"); exit(1); } sprintf(s, "Testando mmap.\n"); if (msync(s, MSIZE, MS_SYNC) == -1) perror("msync"); sprintf(s, "Testando mmap novamente.\n"); munmap(s, MSIZE); close(fd); return 0; }