diff --git a/sys_darwin.zig b/sys_darwin.zig index a1f2973163395999c059c44851aeb9a407acb5a7..e8d5f085137bcd5ef8c2a4b443b59e46c3f6665f 100644 --- a/sys_darwin.zig +++ b/sys_darwin.zig @@ -280,6 +280,7 @@ pub const libc = struct { pub extern fn lseek(fd: c_int, offset: off_t, whence: c_int) off_t; pub extern fn getcwd(buf: [*]u8, size: usize) ?[*:0]u8; pub extern fn fchmod(fildes: c_int, mode: mode_t) c_int; + pub extern fn faccessat(fd: c_int, path: [*:0]const u8, amode: c_int, flag: c_int) c_int; }; pub const natural_t = c_uint; @@ -569,3 +570,8 @@ pub fn fchmod(fd: c_int, mode: mode_t) !void { if (rc == -1) return errno.fromInt(errno.fromLibC()); std.debug.assert(rc == 0); } +pub fn faccessat(fd: c_int, path: [*:0]const u8, amode: c_int, flag: c_int) !void { + const rc = libc.faccessat(fd, path, amode, flag); + if (rc == -1) return errno.fromInt(errno.fromLibC()); + std.debug.assert(rc == 0); +}