FpAccess¶
Check file access.
Declaration¶
Source position: bunxh.inc line 93
function FpAccess(pathname: PAnsiChar; aMode: cint) : cint;external name 'FPC_SYSC_ACCESS';
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.
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.