aboutsummaryrefslogtreecommitdiff
path: root/lib/std/c.zig
diff options
context:
space:
mode:
authorChinmay Dalal <dalal.chinmay.0101@gmail.com>2025-07-27 12:34:40 +0530
committerAndrew Kelley <andrew@ziglang.org>2025-07-30 21:28:42 -0700
commite941ce3e689991081d0ae726bfa1ccccf4fc196f (patch)
tree13c3799f5c9c9d4ff9918c46a4faba88485b8e78 /lib/std/c.zig
parent032bbd68a7a17b4f8167f9644430c375f43da60c (diff)
downloadzig-e941ce3e689991081d0ae726bfa1ccccf4fc196f.tar.gz
zig-e941ce3e689991081d0ae726bfa1ccccf4fc196f.zip
add grp.h functions to c.zig
Diffstat (limited to 'lib/std/c.zig')
-rw-r--r--lib/std/c.zig21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/std/c.zig b/lib/std/c.zig
index e2f55dd6fb..32f5fc1c3b 100644
--- a/lib/std/c.zig
+++ b/lib/std/c.zig
@@ -207,6 +207,16 @@ pub const passwd = switch (native_os) {
else => void,
};
+pub const group = switch (native_os) {
+ .linux, .freebsd, .openbsd, .dragonfly, .netbsd, .macos => extern struct {
+ name: ?[*:0]const u8,
+ passwd: ?[*:0]const u8,
+ gid: gid_t,
+ mem: [*:null]?[*:0]const u8,
+ },
+ else => void,
+};
+
pub const blkcnt_t = switch (native_os) {
.linux => linux.blkcnt_t,
.emscripten => emscripten.blkcnt_t,
@@ -3291,8 +3301,8 @@ pub const T = switch (native_os) {
.macos, .ios, .tvos, .watchos, .visionos => struct {
pub const IOCGWINSZ = ior(0x40000000, 't', 104, @sizeOf(winsize));
- fn ior(inout: u32, group: usize, num: usize, len: usize) usize {
- return (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num));
+ fn ior(inout: u32, group_arg: usize, num: usize, len: usize) usize {
+ return (inout | ((len & IOCPARM_MASK) << 16) | ((group_arg) << 8) | (num));
}
},
.freebsd => struct {
@@ -10264,6 +10274,13 @@ pub const fstatat = switch (native_os) {
pub extern "c" fn getpwnam(name: [*:0]const u8) ?*passwd;
pub extern "c" fn getpwuid(uid: uid_t) ?*passwd;
+pub extern "c" fn getgrent() ?*group;
+pub extern "c" fn setgrent() void;
+pub extern "c" fn endgrent() void;
+pub extern "c" fn getgrnam(name: [*:0]const u8) ?*passwd;
+pub extern "c" fn getgrnam_r(name: [*:0]const u8, grp: *group, buf: [*]u8, buflen: usize, result: *?*group) c_int;
+pub extern "c" fn getgrgid(gid: gid_t) ?*group;
+pub extern "c" fn getgrgid_r(gid: gid_t, grp: *group, buf: [*]u8, buflen: usize, result: *?*group) c_int;
pub extern "c" fn getrlimit64(resource: rlimit_resource, rlim: *rlimit) c_int;
pub extern "c" fn lseek64(fd: fd_t, offset: i64, whence: c_int) i64;
pub extern "c" fn mmap64(addr: ?*align(page_size) anyopaque, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: i64) *anyopaque;