stdio: skip empty iovec when buffering is disabled

When buffering on a FILE is disabled we still send both iovecs, even
though the first one is always empty. Clean things up by skipping the
empty iovec instead.
This commit is contained in:
Casey Connolly
2025-05-27 10:06:37 -04:00
committed by Rich Felker
parent ae3a8c93a6
commit fde29c04ad
+5
View File
@@ -11,6 +11,11 @@ size_t __stdio_write(FILE *f, const unsigned char *buf, size_t len)
size_t rem = iov[0].iov_len + iov[1].iov_len;
int iovcnt = 2;
ssize_t cnt;
if (!iov->iov_len) {
iov++;
iovcnt--;
}
for (;;) {
cnt = syscall(SYS_writev, f->fd, iov, iovcnt);
if (cnt == rem) {