- struct timeval start, cur;
- double diff;
- char filename[1024];
- char buf[1024];
- int fd, rc = 0, rand, maxrand, len;
- long nfiles = 0, nbytes = 0;
-
- if (!o_quiet)
- printf("%s: running thread #%d\n", cmdname, thread);
-
- srandom(thread);
- /* Higher thread numbers will produce bigger random files.
- Thread 1 will produce only 0-len files. */
- maxrand = 1; rand = thread;
- while (--rand)
- maxrand *= 10;
-
- gettimeofday(&start, NULL);
- cur = start;
-
- while(!rc) {
- if (usr1_received)
- break;
-
- gettimeofday(&cur, NULL);
- if (seconds) {
- if (cur.tv_sec > (start.tv_sec + seconds))
- break;
- }
-
- sprintf(filename, "%s-%d-%ld", file, thread, nfiles);
-
- fd = open(filename, O_RDWR | O_CREAT, 0666);
- if (fd < 0) {
- print_err("open", filename, &cur, errno);
- rc = errno;
- break;
- }
-
- sprintf(buf, "%s %010ld %.19s.%012d\n", cmdname,
- nfiles++, ctime(&cur.tv_sec), (int)cur.tv_usec);
- len = strlen(buf);
-
- rand = random() % maxrand;
- while (rand-- > 0) {
- if (write(fd, buf, len) != len) {
- print_err("write", filename, &cur, errno);
- rc = errno;
- break;
- }
- nbytes += len;
- }
-
- if (close(fd) < 0) {
- print_err("close", filename, &cur, errno);
- rc = errno;
- break;
- }
- if (unlink(filename) < 0) {
- print_err("unlink", filename, &cur, errno);
- if (errno == ENOENT) {
- printf("Ignoring known bug 6082\n");
- } else {
- rc = errno;
- break;
- }
- }
- }
-
- diff = difftime(&cur, &start);
- if (!o_quiet)
- printf("%s: %7ld files, %4ld MB in %.2fs (%7.2f files/s, "
- "%5.2f MB/s): rc = %d\n",
- cmdname, nfiles, nbytes >> 20, diff,
- diff == 0 ? (double)0 : (double)nfiles / diff,
- diff == 0 ? (double)0 : (double)nbytes/1024/1024 / diff,
- rc);
-
- return rc;
+ struct timeval start, cur;
+ double diff;
+ char filename[1024];
+ char buf[1024];
+ int fd, rc = 0, rand, maxrand, len;
+ long nfiles = 0, nbytes = 0;
+
+ if (!o_quiet)
+ printf("%s: running thread #%d\n", cmdname, thread);
+
+ srandom(thread);
+ /*
+ * Higher thread numbers will produce bigger random files.
+ * Thread 1 will produce only 0-len files.
+ */
+ maxrand = 1; rand = thread;
+ while (--rand)
+ maxrand *= 10;
+
+ gettimeofday(&start, NULL);
+ cur = start;
+
+ while (!rc) {
+ if (usr1_received)
+ break;
+
+ gettimeofday(&cur, NULL);
+ if (seconds) {
+ if (cur.tv_sec > (start.tv_sec + seconds))
+ break;
+ }
+
+ snprintf(filename, sizeof(filename), "%s-%d-%ld",
+ file, thread, nfiles);
+
+ fd = open(filename, O_RDWR | O_CREAT, 0666);
+ if (fd < 0) {
+ print_err("open", filename, &cur, errno);
+ rc = errno;
+ break;
+ }
+
+ sprintf(buf, "%s %010ld %.19s.%012d\n", cmdname,
+ nfiles++, ctime(&cur.tv_sec), (int)cur.tv_usec);
+ len = strlen(buf);
+
+ rand = random() % maxrand;
+ while (rand-- > 0) {
+ if (write(fd, buf, len) != len) {
+ print_err("write", filename, &cur, errno);
+ rc = errno;
+ break;
+ }
+ nbytes += len;
+ }
+
+ if (close(fd) < 0) {
+ print_err("close", filename, &cur, errno);
+ rc = errno;
+ break;
+ }
+ if (unlink(filename) < 0) {
+ print_err("unlink", filename, &cur, errno);
+ if (errno == ENOENT) {
+ printf("Ignoring known bug 6082\n");
+ } else {
+ rc = errno;
+ break;
+ }
+ }
+ }
+
+ diff = difftime(cur.tv_sec, start.tv_sec);
+ if (!o_quiet)
+ printf("%s: %7ld files, %4ld MB in %.2fs (%7.2f files/s, %5.2f MB/s): rc = %d\n",
+ cmdname, nfiles, nbytes >> 20, diff,
+ diff == 0 ? (double)0 : (double)nfiles / diff,
+ diff == 0 ? (double)0 : (double)nbytes / 1024 / 1024 /
+ diff, rc);
+
+ return rc;