Something went wrong. Try again.
Something went wrong. Try again.
12345678910111213141516171819202122const std = @import("std");const builtin = @import("builtin");const windows = @import("windows.zig");const posix = std.posix;
/// pipe() that works on Windows and POSIX. For POSIX systems, this sets/// CLOEXEC on the file descriptors.pub fn pipe() ![2]posix.fd_t { switch (builtin.os.tag) { else => return try posix.pipe2(.{ .CLOEXEC = true }), .windows => { var read: windows.HANDLE = undefined; var write: windows.HANDLE = undefined; if (windows.exp.kernel32.CreatePipe(&read, &write, null, 0) == 0) { return windows.unexpectedError(windows.kernel32.GetLastError()); }
return .{ read, write }; }, }}