- case 'w': {
- int rc;
- if ((rc = write(fd, "w", 1)) == -1) {
- perror("write");
- exit(1);
- }
- /* b=3043 write() on Suse x86-64 is returning -errno
- instead of -1, and not setting errno. */
- if (rc < 0) {
- fprintf(stderr, "MULTIOP: broken write() "
- "returned %d, errno %d\n",
- rc, errno);
- exit(1);
+ case 'w':
+ len = atoi(commands+1);
+ if (len <= 0)
+ len = 1;
+ while(len > 0) {
+ if ((rc = write(fd, buf,
+ min(len, sizeof(buf))))
+ == -1) {
+ perror("write");
+ exit(1);
+ }
+ len -= sizeof(buf);