diff --git a/lib/std/c.zig b/lib/std/c.zig index 67da8ba5d1..e006420f5c 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -9060,7 +9060,7 @@ pub extern "c" fn pwrite(fd: fd_t, buf: [*]const u8, nbyte: usize, offset: off_t pub extern "c" fn mmap(addr: ?*align(page_size) anyopaque, len: usize, prot: c_uint, flags: MAP, fd: fd_t, offset: off_t) *anyopaque; pub extern "c" fn munmap(addr: *align(page_size) const anyopaque, len: usize) c_int; pub extern "c" fn mprotect(addr: *align(page_size) anyopaque, len: usize, prot: c_uint) c_int; -pub extern "c" fn link(oldpath: [*:0]const u8, newpath: [*:0]const u8, flags: c_int) c_int; +pub extern "c" fn link(oldpath: [*:0]const u8, newpath: [*:0]const u8) c_int; pub extern "c" fn linkat(oldfd: fd_t, oldpath: [*:0]const u8, newfd: fd_t, newpath: [*:0]const u8, flags: c_int) c_int; pub extern "c" fn unlink(path: [*:0]const u8) c_int; pub extern "c" fn unlinkat(dirfd: fd_t, path: [*:0]const u8, flags: c_uint) c_int; diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index a5a82c2e32..5f3f043d32 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -1339,13 +1339,12 @@ pub fn tgkill(tgid: pid_t, tid: pid_t, sig: i32) usize { return syscall3(.tgkill, @as(usize, @bitCast(@as(isize, tgid))), @as(usize, @bitCast(@as(isize, tid))), @as(usize, @bitCast(@as(isize, sig)))); } -pub fn link(oldpath: [*:0]const u8, newpath: [*:0]const u8, flags: i32) usize { +pub fn link(oldpath: [*:0]const u8, newpath: [*:0]const u8) usize { if (@hasField(SYS, "link")) { - return syscall3( + return syscall2( .link, @intFromPtr(oldpath), @intFromPtr(newpath), - @as(usize, @bitCast(@as(isize, flags))), ); } else { return syscall5( @@ -1354,7 +1353,7 @@ pub fn link(oldpath: [*:0]const u8, newpath: [*:0]const u8, flags: i32) usize { @intFromPtr(oldpath), @as(usize, @bitCast(@as(isize, AT.FDCWD))), @intFromPtr(newpath), - @as(usize, @bitCast(@as(isize, flags))), + 0, ); } } diff --git a/lib/std/posix.zig b/lib/std/posix.zig index 02f2d975dd..296b7f9d53 100644 --- a/lib/std/posix.zig +++ b/lib/std/posix.zig @@ -2202,11 +2202,11 @@ pub const LinkError = UnexpectedError || error{ /// On WASI, both paths should be encoded as valid UTF-8. /// On other platforms, both paths are an opaque sequence of bytes with no particular encoding. -pub fn linkZ(oldpath: [*:0]const u8, newpath: [*:0]const u8, flags: i32) LinkError!void { +pub fn linkZ(oldpath: [*:0]const u8, newpath: [*:0]const u8) LinkError!void { if (native_os == .wasi and !builtin.link_libc) { - return link(mem.sliceTo(oldpath, 0), mem.sliceTo(newpath, 0), flags); + return link(mem.sliceTo(oldpath, 0), mem.sliceTo(newpath, 0)); } - switch (errno(system.link(oldpath, newpath, flags))) { + switch (errno(system.link(oldpath, newpath))) { .SUCCESS => return, .ACCES => return error.AccessDenied, .DQUOT => return error.DiskQuota, @@ -2233,16 +2233,16 @@ pub fn linkZ(oldpath: [*:0]const u8, newpath: [*:0]const u8, flags: i32) LinkErr /// On WASI, both paths should be encoded as valid UTF-8. /// On other platforms, both paths are an opaque sequence of bytes with no particular encoding. -pub fn link(oldpath: []const u8, newpath: []const u8, flags: i32) LinkError!void { +pub fn link(oldpath: []const u8, newpath: []const u8) LinkError!void { if (native_os == .wasi and !builtin.link_libc) { - return linkat(wasi.AT.FDCWD, oldpath, wasi.AT.FDCWD, newpath, flags) catch |err| switch (err) { + return linkat(wasi.AT.FDCWD, oldpath, wasi.AT.FDCWD, newpath, 0) catch |err| switch (err) { error.NotDir => unreachable, // link() does not support directories else => |e| return e, }; } const old = try toPosixPath(oldpath); const new = try toPosixPath(newpath); - return try linkZ(&old, &new, flags); + return try linkZ(&old, &new); } pub const LinkatError = LinkError || error{NotDir}; diff --git a/lib/std/posix/test.zig b/lib/std/posix/test.zig index 11b01a7266..7ba9a7701e 100644 --- a/lib/std/posix/test.zig +++ b/lib/std/posix/test.zig @@ -278,7 +278,7 @@ test "link with relative paths" { cwd.deleteFile("new.txt") catch {}; try cwd.writeFile(.{ .sub_path = "example.txt", .data = "example" }); - try posix.link("example.txt", "new.txt", 0); + try posix.link("example.txt", "new.txt"); const efd = try cwd.openFile("example.txt", .{}); defer efd.close();