125889Sdfr#include <sys/types.h> 225889Sdfr#include <sys/fcntl.h> 325889Sdfr#include <sys/mman.h> 425889Sdfr#include <unistd.h> 525889Sdfr 625889Sdfrint main(int argc, char** argv) 725889Sdfr{ 825889Sdfr int fd, fd2; 925889Sdfr caddr_t addr; 1025889Sdfr char zeros[4096]; 1125889Sdfr char ones[200]; 1225889Sdfr 1325889Sdfr memset(zeros, 0, sizeof zeros); 1425889Sdfr memset(ones, 1, sizeof ones); 1525889Sdfr#if 0 1625889Sdfr unlink("test2.data"); 1725889Sdfr fd = open("test2.data", O_RDWR|O_CREAT, 0666); 1825889Sdfr if (fd < 0) 1925889Sdfr err(1, "creating file"); 2025889Sdfr if (write(fd, zeros, sizeof zeros) < 0) 2125889Sdfr err(1, "writing zeros"); 2225889Sdfr close(fd); 2325889Sdfr#endif 2425889Sdfr 2525889Sdfr fd = open("test2.data", O_RDWR); 2625889Sdfr if (fd < 0) 2725889Sdfr err(1, "opening file"); 2825889Sdfr if (lseek(fd, 600, SEEK_SET) < 0) 2925889Sdfr err(1, "seeking"); 3025889Sdfr 3125889Sdfr if (write(fd, ones, sizeof ones) < 0) 3225889Sdfr err(1, "writing ones"); 3325889Sdfr 3425889Sdfr addr = mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); 3525889Sdfr if (addr == MAP_FAILED) 3625889Sdfr err(1, "mapping"); 3725889Sdfr unlink("test2.scratch"); 3825889Sdfr fd2 = open("test2.scratch", O_RDWR|O_CREAT, 0666); 3925889Sdfr if (fd2 < 0) 4025889Sdfr err(1, "creating scratch"); 4125889Sdfr 4225889Sdfr if (write(fd2, addr, 4096) < 0) 4325889Sdfr err(1, "writing scratch"); 4425889Sdfr} 45