Skip to content

Commit 65e97ac

Browse files
authored
Merge pull request #267 from numpy1314/test2
2 parents fdb9038 + a1462a7 commit 65e97ac

File tree

1 file changed

+12
-1
lines changed
  • api/arceos_posix_api/src/imp

1 file changed

+12
-1
lines changed

api/arceos_posix_api/src/imp/io.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,18 @@ pub unsafe fn sys_writev(fd: c_int, iov: *const ctypes::iovec, iocnt: c_int) ->
6666
let iovs = unsafe { core::slice::from_raw_parts(iov, iocnt as usize) };
6767
let mut ret = 0;
6868
for iov in iovs.iter() {
69-
ret += write_impl(fd, iov.iov_base, iov.iov_len)?;
69+
if iov.iov_len == 0 {
70+
continue;
71+
}
72+
let result = write_impl(fd, iov.iov_base, iov.iov_len)?;
73+
if result < 0 {
74+
return Ok(result);
75+
}
76+
ret += result;
77+
78+
if result < iov.iov_len as isize {
79+
break;
80+
}
7081
}
7182

7283
Ok(ret)

0 commit comments

Comments
 (0)