1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- Program TestPass2;
- Uses pwd,grp,baseunix,sysutils;
- {$mode objfpc}{$h+}
- Procedure printpchar(fieldname:String;p:pchar);
- Begin
- If assigned(p) Then
- Begin
- write(fieldname);
- write(':',' ':15-length(fieldname));
- writeln(p);
- End;
- End;
- Procedure printpchar(fieldname,p:string);
- Begin
- printpchar(fieldname,pchar(p));
- End;
- Var p : PPasswd;
- supplementary_gids : array[0..99] Of gid_t;
- i,nrgids: cint;
- pgrp: PGroup;
- Begin
- p := fpgetpwnam('marcov');
- If assigned(p) Then
- Begin
- printpchar('pw_name',p^.pw_name);
- printpchar('pw_passwd',p^.pw_passwd);
- writeln('pw_uid:',' ':9,p^.pw_uid);
- writeln('pw_gid:',' ':9,p^.pw_gid);
- {$ifdef BSD}
- printpchar('pw_change',inttostr(p^.pw_change));
- printpchar('pw_class',p^.pw_class);
- {$endif}
- printpchar('pw_gecos',p^.pw_gecos);
- printpchar('pw_dir',p^.pw_dir);
- printpchar('pw_shell',p^.pw_shell);
- {$ifdef BSD}
- printpchar('pw_expire',inttostr(p^.pw_expire));
- {$ifdef FreeBSD}
- printpchar('pw_fields',inttostr(p^.pw_fields));
- {$endif}
- {$endif}
- End;
- nrgids := 100;
- If fpgetgrouplist(p^.pw_name,p^.pw_gid,@supplementary_gids,@nrgids)<>-1 Then
- Begin
- Write ('Supplementary groups:');
- For i:=0 To nrgids-1 Do
- Begin
- pgrp := fpgetgrgid(supplementary_gids[i]);
- If assigned(pgrp) Then
- write(pgrp^.gr_name,' (',supplementary_gids[i],') ')
- Else
- write(' ???? (',supplementary_gids[i],') ')
- End;
- writeln;
- End;
- writeln;
- End.
|