From 77efa9c90558b2c8e2e2701c9547ff24ecd96587 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Tue, 26 May 2026 17:56:08 -0700 Subject: [PATCH] populate OpenFileFlags --- Dir.zig | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Dir.zig b/Dir.zig index 45c6b24882d19eb1c424e52d3d2b30f3b2da83de..a92452a7427ae3d40c948df9174905db4bb580b7 100644 --- a/Dir.zig +++ b/Dir.zig @@ -21,8 +21,14 @@ pub fn close(self: Dir) void { } pub fn openFile(self: Dir, sub_path: [:0]const u8, flags: OpenFileFlags) !File { - _ = flags; - return .{ .fd = @enumFromInt(try sys.openat(@intFromEnum(self.fd), sub_path.ptr, sys.O.RDONLY)) }; + var oflag: c_int = 0; + oflag |= switch (flags.mode) { + .read_only => sys.O.RDONLY, + .write_only => sys.O.WRONLY, + .read_write => sys.O.RDWR, + }; + oflag |= sys.O.CLOEXEC; + return .{ .fd = @enumFromInt(try sys.openat(@intFromEnum(self.fd), sub_path.ptr, oflag)) }; } pub fn openFileC(self: Dir, sub_path: []const u8, flags: OpenFileFlags) !File { std.debug.assert(sub_path.len <= sys.PATH_MAX); @@ -33,7 +39,7 @@ pub fn openFileC(self: Dir, sub_path: []const u8, flags: OpenFileFlags) !File { } pub const OpenFileFlags = packed struct { - // + mode: enum(u8) { read_only, write_only, read_write } = .read_only, }; pub fn openDir(self: Dir, sub_path: [:0]const u8, flags: OpenDirFlags) !Dir { -- 2.54.0