[riot-notifications] [RIOT-OS/RIOT] cpu/native: make use of stdio_read() / stdio_write() (#16822)

Karl Fessel notifications at github.com
Tue Sep 21 17:24:41 CEST 2021


@kfessel commented on this pull request.



> @@ -249,13 +249,18 @@ ssize_t _native_writev(int fd, const struct iovec *iov, int iovcnt)
     ssize_t r = 0;
 
     if (fd == STDOUT_FILENO || fd == STDERR_FILENO) {
-        for (int i = 0; i < iovcnt; ++i) {
-            ssize_t res = stdio_write(iov->iov_base, iov->iov_len);
-            iov++;
-            if (res < 0) {
-                return res;
+        while (iovcnt--) {
+            size_t offset = 0;
+            while (iov->iov_len > offset) {
+                ssize_t res = stdio_write((void *)((uintptr_t)iov->iov_base + offset),
+                                          iov->iov_len - offset);
+                if (res < 0) {
+                    return res;

the write manpage  goes into detail howto get the error state:
```
In  the  event  of  a  partial write, the caller can make another write() call to transfer the remaining bytes. \
The subsequent call will either transfer further bytes or may result in an error (e.g., if the disk is now full)
```


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/16822#discussion_r713154515
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210921/1edcf914/attachment-0001.htm>


More information about the notifications mailing list