FpChown function
Change owner of file.
Declaration
function FpChown(path: PAnsiChar; owner: TUid; group: TGid): cintDescription
fpChown sets the User ID and Group ID of the file in
Path to
Owner,
Group.
The function returns zero if the call was successful, a nonzero return value indicates an error.
Errors
The following error codes are returned:
- sys_eperm
- The effective UID doesn't match the ownership of the file, and is not zero. Owner or group were not specified correctly.
- sys_eaccess
- One of the directories in
Pathhas no search (=execute) permission. - sys_enoent
- A directory entry in
Pathdoes not exist or is a symbolic link pointing to a non-existent directory. - sys_enomem
- Insufficient kernel memory.
- sys_erofs
- The file is on a read-only file system.
- sys_eloop
-
Pathhas a reference to a circular symbolic link, i.e. a symbolic link, whose expansion points to itself.
See also
Example: ex24
Program Example24;
{ Program to demonstrate the Chown function. }
Uses BaseUnix;
Var UID : TUid;
GID : TGid;
F : Text;
begin
Writeln ('This will only work if you are root.');
Write ('Enter a UID : ');readln(UID);
Write ('Enter a GID : ');readln(GID);
Assign (f,'test.txt');
Rewrite (f);
Writeln (f,'The owner of this file should become : ');
Writeln (f,'UID : ',UID);
Writeln (f,'GID : ',GID);
Close (F);
if fpChown ('test.txt',UID,GID)<>0 then
if fpgeterrno=ESysEPERM then
Writeln ('You are not root !')
else
Writeln ('Chmod failed with exit code : ',fpgeterrno)
else
Writeln ('Changed owner successfully !');
end.An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
