[fpc-pascal]How to get the Home Directory of the user?
Hélio Cavichiolo Jr
helio at definitylinux.com.br
Fri Sep 6 20:06:06 CEST 2002
How to check if a call to getpwnam had success?
How to change user information?
I made this program to test but the 'if' never matches.
Entering a valid user, I had to remove de 'if' to see user's gecos, by the
other hand, entering an invalid user, the program crashes on the 'if'.
program test;
uses
pwdlibc;
var
pwd : pPasswd;
user: pChar;
begin
user := '';
write('Usuário: ');
readln(user);
pwd := Getpwnam(user);
if user = pwd^.pw_name then
begin
writeln('(',pwd^.pw_name,')');
writeln('(',pwd^.pw_gecos,')');
end
else
writeln(user,' not found!');
end.
> Hi,
> this is how you can get some info's from a logged User:
>
> unit pwdlibc;
> {---------------------------------------------------------------------------
> CncWare
> (c) Copyright 1999
> ----------------------------------------------------------------------------
> Filename..: pwdlibc.pp
> Programmer: Ken J. Wright
> Date......: 10/01/1999
>
> Purpose - Link to the Linux 'c' library for system passwd functions.
>
> -------------------------------< Revisions
>>---------------------------------
> Revision| Date | Prog| Description
> ----------------------------------------------------------------------------
> -
> 1.00 | 10/01/99 | kjw | Initial release.
> ----------------------------------------------------------------------------
> -
> }
>
> interface
>
> {$linklib c}
>
> {$PACKRECORDS 4}
> Type
> pPasswd = ^passwd;
> passwd = Record
> pw_name, { Username }
> pw_passwd : pChar; { Password }
> pw_uid, { User ID }
> pw_gid : longint; { Group ID }
> pw_gecos, { Real Name }
> pw_dir, { Home directory }
> pw_shell : pChar; { Shell program }
> End;
>
> pGroup = ^group;
> group = Record
> gr_name, { Group name }
> gr_passwd : pChar; { Password }
> gr_gid : longint; { Group ID }
> gr_mem : pChar; { Member list }
> End;
>
> { returns a pointer to a passwd record }
> Function getpwuid(uid : longint) : pPasswd; cdecl;
> Function getpwnam(nam : pChar) : pPasswd; cdecl;
>
> { returns a pointer to a group record }
> Function getgrgid(gid : longint) : pGroup; cdecl;
> Function getgrnam(nam : pChar) : pGroup; cdecl;
>
> implementation
>
> Function getpwuid(uid : longint) : pPasswd; cdecl; External;
> Function getpwnam(nam : pChar) : pPasswd; cdecl; External;
> Function getgrgid(gid : longint) : pGroup; cdecl; External;
> Function getgrnam(nam : pChar) : pGroup; cdecl; External;
>
> end.
>
> my regards,
> Stefan
>
>
>
>>Hello, Every body
>>
>> Can you tell me how to get the Home Directory of a user in free
>> pascal
> under
>>linux? Thank you very much.
>>
>> Yours,
>> mili
>
>
>
>
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
--
Helio Cavichiolo Jr
Analista de Sistemas
Esc Telecomunicações Ltda
D e f i n i t y L i n u x
More information about the fpc-pascal
mailing list