next up previous contents index
Next: CloseDir Up: Functions and procedures Previous: Chown

Chmod

   

Declaration:

Function Chmod (Path : Pathstr;NewMode : Longint) : Boolean;

Description:

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:

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.

See also:

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