diff --git a/Dir.zig b/Dir.zig index 4f85d2861b79e17ea9e6539feae86ac82d0df709..16e51c886496ec04b4218933432f1e4d2dce7189 100644 --- a/Dir.zig +++ b/Dir.zig @@ -453,3 +453,7 @@ pub fn copyFile(source_dir: Dir, source_path: [:0]const u8, dest_dir: Dir, dest_ return; } } + +pub fn dup(self: Dir) !Dir { + return .{ .fd = @enumFromInt(try sys.dup(@intFromEnum(self.fd))) }; +} diff --git a/File.zig b/File.zig index 7516e2dfd7e9e744f2fae160cff0e6a1fbe9cd23..bd38bc736468627816e1a0d9e0fb430d6434cedf 100644 --- a/File.zig +++ b/File.zig @@ -230,3 +230,7 @@ pub fn realpathAlloc(self: File, allocator: std.mem.Allocator) ![:0]u8 { const actual = try self.realpath(&buf); return allocator.dupeZ(u8, actual); } + +pub fn dup(self: File) !File { + return .{ .fd = @enumFromInt(try sys.dup(@intFromEnum(self.fd))) }; +}