
type
   Pgroup = ^group;
   group = record
        gr_name : Pchar;
        gr_passwd : Pchar;
        gr_gid : __gid_t;
        gr_mem : ^Pchar;
     end;
   PPgroup = ^Pgroup;
   
procedure setgrent;cdecl;external clib name 'setgrent';
procedure endgrent;cdecl;external clib name 'endgrent';
function getgrent:Pgroup;cdecl;external clib name 'getgrent';
function fgetgrent(__stream:PFILE):Pgroup;cdecl;external clib name 'fgetgrent';
function putgrent(__p:Pgroup; __f:PFILE):longint;cdecl;external clib name 'putgrent';
function getgrgid(__gid:__gid_t):Pgroup;cdecl;external clib name 'getgrgid';
function getgrnam(__name:Pchar):Pgroup;cdecl;external clib name 'getgrnam';

const
   NSS_BUFLEN_GROUP = 1024;

function getgrent_r(__resultbuf:Pgroup; __buffer:Pchar; __buflen:size_t; __result:PPgroup):longint;cdecl;external clib name 'getgrent_r';
function getgrgid_r(__gid:__gid_t; __resultbuf:Pgroup; __buffer:Pchar; __buflen:size_t; __result:PPgroup):longint;cdecl;external clib name 'getgrgid_r';
function getgrnam_r(__name:Pchar; __resultbuf:Pgroup; __buffer:Pchar; __buflen:size_t; __result:PPgroup):longint;cdecl;external clib name 'getgrnam_r';
function fgetgrent_r(__stream:PFILE; __resultbuf:Pgroup; __buffer:Pchar; __buflen:size_t; __result:PPgroup):longint;cdecl;external clib name 'fgetgrent_r';
function setgroups(__n:size_t; __groups:P__gid_t):longint;cdecl;external clib name 'setgroups';
function getgrouplist(__user:Pchar; __group:__gid_t; __groups:P__gid_t; __ngroups:Plongint):longint;cdecl;external clib name 'getgrouplist';
function initgroups(__user:Pchar; __group:__gid_t):longint;cdecl;external clib name 'initgroups';


{ ---------------------------------------------------------------------
    Borland compatibility types
  ---------------------------------------------------------------------}

Type  
  TGroup = group;

function putgrent(const __p: group; __f:PFILE):longint;cdecl;external clib name 'putgrent';
function getgrent_r(var __resultbuf: group; __buffer:Pchar; __buflen:size_t; var __result: Pgroup):longint;cdecl;external clib name 'getgrent_r';
function getgrgid_r(__gid:__gid_t; var __resultbuf:group; __buffer:Pchar; __buflen:size_t; var __result:Pgroup):longint;cdecl;external clib name 'getgrgid_r';
function getgrnam_r(__name:Pchar; var __resultbuf:group; __buffer:Pchar; __buflen:size_t; var __result:Pgroup):longint;cdecl;external clib name 'getgrnam_r';
function fgetgrent_r(__stream:PFILE; var __resultbuf:group; __buffer:Pchar; __buflen:size_t; var __result:Pgroup):longint;cdecl;external clib name 'fgetgrent_r';
function getgrouplist(__user:Pchar; __group:__gid_t; var __groups: __gid_t; var __ngroups:longint):longint;cdecl;external clib name 'getgrouplist';
  