| ... | ... | @@ -30,6 +30,13 @@ pub fn openDir(self: Dir, sub_path: [:0]const u8, flags: OpenDirFlags) !Dir { |
| 30 | 30 | if (os == .linux) |
| 31 | 31 | return .{ .fd = @enumFromInt(try sys_linux.openat(@intFromEnum(self.fd), sub_path.ptr, sys_linux.O.RDONLY | sys_linux.O.DIRECTORY)) }; |
| 32 | 32 | } |
| 33 | pub fn openDirC(self: Dir, sub_path: []const u8, flags: OpenDirFlags) !Dir { |
| 34 | std.debug.assert(sub_path.len <= sys_linux.NAME_MAX); |
| 35 | var buf: [sys_linux.NAME_MAX + 1]u8 = undefined; |
| 36 | @memcpy(buf[0..sub_path.len], sub_path); |
| 37 | buf[sub_path.len] = 0; |
| 38 | return openDir(self, buf[0..sub_path.len :0], flags); |
| 39 | } |
| 33 | 40 | |
| 34 | 41 | pub const OpenDirFlags = packed struct { |
| 35 | 42 | // |