diff --git a/mod.zig b/mod.zig index 635779fa77fbd9c40751ec2bd107689fdb66aece..6e7f2b3594819139b54a87404f0e8257c2ad25e4 100644 --- a/mod.zig +++ b/mod.zig @@ -2751,6 +2751,10 @@ pub const libc = struct { /// https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/umask.html pub extern fn umask(cmask: mode_t) mode_t; + /// int unlinkat(int fd, const char *path, int flag); + /// https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/unlinkat.html + pub extern fn unlinkat(fd: c_int, name: [*:0]const u8, flag: c_int) c_int; + /// int unlockpt(int fildes); /// https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/unlockpt.html pub extern fn unlockpt(fd: c_int) c_int; @@ -3691,3 +3695,8 @@ pub fn waitpid(pid: pid_t, options: c_int) !struct { pid_t, c_int } { std.debug.assert(rc >= 0); return .{ rc, status }; } +pub fn unlinkat(fd: c_int, name: [*:0]const u8, flag: c_int) !void { + const rc = libc.unlinkat(fd, name, flag); + if (rc == -1) return errno.fromInt(errno.fromLibC()); + std.debug.assert(rc == 0); +} diff --git a/test.zig b/test.zig index 6177fa446815f4eb19708d84952ddc8fe706da21..2daeaf20e20c38b8c8f9e4aea04a90c86faf8fb7 100644 --- a/test.zig +++ b/test.zig @@ -78,4 +78,5 @@ test { _ = &linux.dup2; _ = &linux.poll; _ = &linux.waitpid; + _ = &linux.unlinkat; }