| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | /** * D header file for POSIX. * * Copyright: Public Domain * License: Public Domain * Authors: Christian Schneider * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition * Source: Copied/edited from tango.stdc.posix.pwd */ module tango.stdc.posix.grp; private import tango.stdc.posix.config; public import tango.stdc.posix.sys.types; // for gid_t, uid_t extern (C): // // Required // /* struct group { char* gr_name; gid_t gr_gid; char** gr_mem; } group* getgrnam(in char*); group* getgrgid(gid_t); */ version( linux ) { struct group { char* gr_name; char* gr_passwd; gid_t gr_gid; char** gr_mem; } } else version( darwin ) { struct group { char* gr_name; char* gr_passwd; gid_t gr_gid; char** gr_mem; } } else version( FreeBSD ) { struct group { char* gr_name; char* gr_passwd; gid_t gr_gid; char** gr_mem; } } else version( solaris ) { struct group { char* gr_name; char* gr_passwd; gid_t gr_gid; char** gr_mem; } } group* getgrnam(in char*); group* getgrgid(gid_t); // // Thread-Safe Functions (TSF) // /* int getgrnam_r(in char*, group*, char*, size_t, group**); int getgrgid_r(gid_t, group*, char*, size_t, group**); */ version( linux ) { int getgrnam_r(in char*, group*, char*, size_t, group**); int getgrgid_r(gid_t, group*, char*, size_t, group**); } else version( darwin ) { int getgrnam_r(in char*, group*, char*, size_t, group**); int getgrgid_r(gid_t, group*, char*, size_t, group**); } else version( FreeBSD ) { int getgrnam_r(in char*, group*, char*, size_t, group**); int getgrgid_r(gid_t, group*, char*, size_t, group**); } else version( solaris ) { int getgrnam_r(in char*, group*, char*, size_t, group**); int getgrgid_r(gid_t, group*, char*, size_t, group**); } // // XOpen (XSI) // /* void endgrent(); passwd* getgrent(); void setgrent(); */ version( linux ) { void endgrent(); group* getgrent(); void setgrent(); } else version ( darwin ) { void endgrent(); group* getgrent(); void setgrent(); } else version (FreeBSD) { void endgrent(); group* getgrent(); void setgrent(); } else version ( solaris ) { void endgrent(); group* getgrent(); void setgrent(); } |