Next: CloseDir
Up: Functions and procedures
Previous: Chown
Function Chmod (Path : Pathstr;NewMode : Longint) : Boolean;
Chmod
Sets the Mode bits of the file in Path to NewMode. Newmode can be
specified by 'or'-ing the following:
- S_ISUID
- Set user ID on execution.
- S_ISGID
- Set Group ID on execution.
- S_ISVTX
- Set sticky bit.
- S_IRUSR
- Read by owner.
- S_IWUSR
- Write by owner.
- S_IXUSR
- Execute by owner.
- S_IRGRP
- Read by group.
- S_IWGRP
- Write by group.
- S_IXGRP
- Execute by group.
- S_IROTH
- Read by others.
- S_IWOTH
- Write by others.
- S_IXOTH
- Execute by others.
- S_IRWXO
- Read, write, execute by others.
- S_IRWXG
- Read, write, execute by groups.
- S_IRWXU
- Read, write, execute by user.
Errors are returned in LinuxError.
- 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 Path has no
search (=execute) permission.
- sys_enoent
- A directory entry in Path does
not exist or is a symbolic link pointing to a non-existent directory.
- sys_enotdir
- A directory entry in OldPath or NewPath is
nor a directory.
- sys_enomem
- Insufficient kernel memory.
- sys_erofs
- The file is on a read-only filesystem.
- sys_eloop
- Path has a reference to a circular
symbolic link, i.e. a symbolic link, whose expansion points to itself.
Chown, Access, Chmod (()2)
- Example
-
Program Example23;
{ Program to demonstrate the Chmod function. }
Uses linux;
Var F : Text;
begin
{ Create a file }
Assign (f,'testex21');
Rewrite (F);
Writeln (f,'#!/bin/sh');
Writeln (f,'echo Some text for this file');
Close (F);
{ Octal() makes the correct number from a
number that LOOKS octal }
Chmod ('testex21',octal (777));
{ File is now executable }
execl ('./testex21');
end.
Michael Van Canneyt
Thu Sep 10 13:59:33 CEST 1998