|
|
1.1 ! root 1: /* ! 2: * Sequential I/O benchmark. ! 3: * ! 4: * Overwrites existing data in a file. ! 5: */ ! 6: #include <sys/types.h> ! 7: #include <sys/file.h> ! 8: #include <sys/stat.h> ! 9: ! 10: char *malloc(); ! 11: ! 12: main(argc, argv) ! 13: char *argv[]; ! 14: { ! 15: register int i, max; ! 16: char *buf; ! 17: struct stat sb; ! 18: int fd; ! 19: ! 20: if (argc < 2) { ! 21: printf("usage: %s file\n", argv[0]); ! 22: exit(1); ! 23: } ! 24: fd = open(argv[1], O_WRONLY, 0644); ! 25: if (fd < 0) { ! 26: perror(argv[1]); ! 27: exit(1); ! 28: } ! 29: fstat(fd, &sb); ! 30: buf = malloc(sb.st_blksize); ! 31: max = sb.st_size / sb.st_blksize; ! 32: printf("%d writes of %d kilobytes\n", max, sb.st_blksize / 1024); ! 33: for (i = 0; i < max; i++) ! 34: write(fd, buf, sb.st_blksize); ! 35: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.