//#define WRITELOOP 1 #define WRITEMMAP 1 #include #include #include #include #include #include #define NLOG 5 #define LOGSIZE (16*1024*1024) #define CHUNK 8192 void die(char *s) { perror(s); exit(1); } int main(int argc, char **argv) { int fd; char nbuf[40]; int i; struct timeval ot, nt; #ifdef WRITELOOP char buf[CHUNK]; #endif #ifdef WRITEMMAP char *map; #endif #ifdef WRITELOOP memset(buf, 0, CHUNK); #endif #ifdef WRITEMMAP { int zfd; if((zfd = open("/dev/zero", O_RDONLY)) < 0) die("can't open /dev/zero"); if((map = mmap(NULL, LOGSIZE, PROT_READ, MAP_SHARED, zfd, 0)) == MAP_FAILED) die("mmap /dev/zero"); close(zfd); } #endif if(argc != 2) die("usage: writetest directory"); for(i=0; i