#ifndef __GRP_LOADED #define __GRP_LOADED 1 #pragma __nostandard #include /* ** Group database functions are available on Alpha only. ** They require version of OpenVMS Alpha higher than V7.3. */ #if __USE_LONG_GID_T /**************************************************************************** ** ** - Group file access functions ** ***************************************************************************** ** Header introduced by the ISO POSIX-1 Standard ***************************************************************************** ** Copyright 2000 Compaq Computer Corporation ** ** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. ** ** Confidential computer software. Valid license from Compaq required for ** possession, use or copying. Consistent with FAR 12.211 and 12.212, ** Commercial Computer Software, Computer Software Documentation, and ** Technical Data for Commercial Items are licensed to the U.S. Government ** under vendor's standard commercial license. ** ***************************************************************************** */ #ifdef __cplusplus extern "C" { #endif /* ** Naturally align data structures */ #pragma __member_alignment __save #pragma __member_alignment /* ** X/Open extensions for types */ #if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE # if !defined __GID_T # define __GID_T 1 typedef __gid_t gid_t; # endif # if !defined __SIZE_T # define __SIZE_T 1 typedef __size_t size_t; # endif #endif /* ** Define the group structure */ struct group { char *gr_name; __long_gid_t gr_gid; char **gr_mem; }; /* ** Function prototypes. */ #if __USE_LONG_GID_T /* ** Applications compiled with long pointers will use ** __*64() flavour of the group database functions. */ #ifdef __INITIAL_POINTER_SIZE # if __INITIAL_POINTER_SIZE == 64 # define getgrent __getgrent64 # define getgrgid(__p1) __getgrgid64(__p1) # define getgrgid_r(__p1, __p2, __p3, __p4, __p5) \ __getgrgid_r64(__p1, __p2, __p3, __p4, __p5) # define getgrnam(__p1) __getgrnam64(__p1) # define getgrnam_r(__p1, __p2, __p3, __p4, __p5) \ __getgrnam_r64(__p1, __p2, __p3, __p4, __p5) # endif #endif void endgrent(void); struct group *getgrent(void); void setgrent(void); struct group *getgrgid(__gid_t); int getgrgid_r(__gid_t, struct group *, char *, __size_t, struct group **); struct group *getgrnam(const char *); int getgrnam_r(const char *, struct group *, char *, __size_t, struct group **); #endif /* __USE_LONG_GID_T */ #ifdef __cplusplus } #endif #pragma __member_alignment __restore #endif /* __GRP_LOADED */ #pragma __standard #endif /* __USE_LONG_GID_T */