diff --git a/Dir.zig b/Dir.zig index 5daac58151cc9569be50800cba8da1c17c100789..02b3bdec50da70d7cfa7bb58f06a377ca3ac7ec6 100644 --- a/Dir.zig +++ b/Dir.zig @@ -8,6 +8,11 @@ const Dir = @This(); const os = builtin.target.os.tag; +const sys = switch (os) { + .linux => sys_linux, + else => unreachable, +}; + fd: nfs.Handle, // Resource allocation may fail; resource deallocation must succeed. @@ -105,3 +110,7 @@ pub fn makeOpenPath(self: Dir, sub_path: [:0]const u8, flags: OpenDirFlags) !Dir else => |e| return e, }; } + +pub fn readlink(self: Dir, noalias sub_path: [:0]const u8, noalias buf: []u8) ![:0]u8 { + return sys.readlinkat(@intFromEnum(self.fd), sub_path, buf); +}