#include #include #include #include #include #include #include "check.h" int main() { int fd; char *x; FILE *fp; char buf[40]; fd = open("my.file", O_CREAT | O_TRUNC | O_RDWR, 0644); CHECK (fd != -1); CHECK (write (fd, "abcdefgh", 8) == 8); x = (char *)mmap (0, 20, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); CHECK (x != MAP_FAILED); x[3] = 'j'; CHECK (munmap (x, 20) == 0); CHECK (close(fd) != -1); fp = fopen("my.file","r"); CHECK (fp != NULL); CHECK (fread(buf, 1, 20, fp) == 8); CHECK (strncmp (buf, "abcjefgh", 8) == 0); exit (0); }