diff --git a/lib/std/Io/File/Writer.zig b/lib/std/Io/File/Writer.zig index 226b60993f954b7bce70d41c501d35795daacbcf..bf8c0bf289d0313926ad241f60188250635a47dc 100644 --- a/lib/std/Io/File/Writer.zig +++ b/lib/std/Io/File/Writer.zig @@ -26,7 +26,6 @@ pub const Error = error{ InputOutput, NoSpaceLeft, DeviceBusy, - InvalidArgument, /// File descriptor does not hold the required rights to write to it. AccessDenied, PermissionDenied, diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig index 086139445f737be6e55d594570a9f5f4581ffc11..3662359b31e47c157d570966cec0da355b551e9a 100644 --- a/lib/std/Io/Threaded.zig +++ b/lib/std/Io/Threaded.zig @@ -7449,6 +7449,8 @@ fn fileWritePositional( }, }; + if (iovlen == 0) return 0; + if (native_os == .wasi and !builtin.link_libc) { var n_written: usize = undefined; try current_thread.beginSyscall(); @@ -7502,7 +7504,7 @@ fn fileWritePositional( else => |e| { current_thread.endSyscall(); switch (e) { - .INVAL => return error.InvalidArgument, + .INVAL => |err| return errnoBug(err), .FAULT => |err| return errnoBug(err), .AGAIN => return error.WouldBlock, .BADF => return error.NotOpenForWriting, // Usually a race condition. @@ -7569,6 +7571,8 @@ fn fileWriteStreaming( }, }; + if (iovlen == 0) return 0; + if (native_os == .wasi and !builtin.link_libc) { var n_written: usize = undefined; try current_thread.beginSyscall(); @@ -7619,7 +7623,7 @@ fn fileWriteStreaming( else => |e| { current_thread.endSyscall(); switch (e) { - .INVAL => return error.InvalidArgument, + .INVAL => |err| return errnoBug(err), .FAULT => |err| return errnoBug(err), .AGAIN => return error.WouldBlock, .BADF => return error.NotOpenForWriting, // Can be a race condition.