Irie Pascal supports ten built-in integer constants which can be used with the built-in procedures mkdir and getfilemode to specify or identify read, write, and execute/search permissions, as well as to find out whether a file is a directory/folder.
The permission constants are listed below:
For example the simple program below asks for a filename and then displays the all the file permissions for the file.
program AllPermissions(input, output);
var
s : filename;
mode : integer;
isdir : boolean;
begin
write('Enter filename:');
readln(s);
s := fexpand(s);
getfilemode(s, mode);
isdir := (mode and dir_bit) <> 0;
if isdir then
writeln(s, ' is a directory')
else
writeln(s, ' is not a directory');
write('Owner permissions :');
if (mode and usr_r) <> 0 then
write(' Read');
if (mode and usr_w) <> 0 then
write(' Write');
if (mode and usr_x) <> 0 then
if isdir then
write(' Search')
else
write(' Execute');
writeln;
write('Group permissions :');
if (mode and grp_r) <> 0 then
write(' Read');
if (mode and grp_w) <> 0 then
write(' Write');
if (mode and grp_x) <> 0 then
if isdir then
write(' Search')
else
write(' Execute');
writeln;
write('Other permissions :');
if (mode and oth_r) <> 0 then
write(' Read');
if (mode and oth_w) <> 0 then
write(' Write');
if (mode and oth_x) <> 0 then
if isdir then
write(' Search')
else
write(' Execute');
writeln;
end.