FpAccess

Check file access

Declaration

Source position: bunxh.inc line 82

  function FpAccess(pathname: pChar; aMode: cint) : cint;
  function FpAccess(const pathname: RawByteString; aMode: cint) : cint;

Description

FpAccess tests user's access rights on the specified file. Mode is a mask existing of one or more of the following:

R_OK
User has read rights.
W_OK
User has write rights.
X_OK
User has execute rights.
F_OK
File exists.

The test is done with the real user ID, instead of the effective user ID. If the user has the requested rights, zero is returned. If access is denied, or an error occurred, a nonzero value is returned.

Errors

Extended error information can be retrieved using fpGetErrno .

sys_eaccess
The requested access is denied, either to the file or one of the directories in its path.
sys_einval
Mode was incorrect.
sys_enoent
A directory component in Path doesn't exist or is a dangling symbolic link.
sys_enotdir
A directory component in Path is not a directory.
sys_enomem
Insufficient kernel memory.
sys_eloop
Path has a circular symbolic link.

See also

Name Description
FpChmod Change file permission bits
FpChown Change owner of file

Example

Program Example26;
{ Program to demonstrate the Access function. }
Uses BaseUnix;
begin
  if fpAccess ('/etc/passwd',W_OK)=0 then
    begin
    Writeln ('Better check your system.');
    Writeln ('I can write to the /etc/passwd file !');
    end;
end.