next up previous contents index
Next: LocalToEpoch Up: Functions and procedures Previous: LStat

Link

   

Declaration:

Function Link (OldPath,NewPath : pathstr) : Boolean;

Description:

Link makes NewPath point to the same file als OldPath. The two files then have the same inode number. This is known as a 'hard' link.

The function returns True if the call was succesfull, False if the call failed.

Errors:

Errors are returned in LinuxError.

sys_exdev
OldPath and NewPath are not on the same filesystem.
sys_eperm
The filesystem containing oldpath and newpath doesn't support linking files.
sys_eaccess
Write access for the directory containing Newpath is disallowed, or one of the directories in OldPath or NewPath has no search (=execute) permission.
sys_enoent
A directory entry in OldPath or NewPath 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 files are on a read-only filesystem.
sys_eexist
NewPath already exists.
sys_emlink
OldPath has reached maximal link count.
sys_eloop
OldPath or NewPath has a reference to a circular symbolic link, i.e. a symbolic link, whose expansion points to itself.
sys_enospc
The device containing NewPath has no room for anothe entry.
sys_eperm
OldPath points to . or .. of a directory.

See also:

SymLink, UnLink, Link (2)

Example
Program Example21;

{ Program to demonstrate the Link and UnLink functions. }

Uses linux;

Var F : Text;
    S : String;
begin
  Assign (F,'test.txt');
  Rewrite (F);
  Writeln (F,'This is written to test.txt');
  Close(f);
  { new.txt and test.txt are now the same file }
  if not Link ('test.txt','new.txt') then
    writeln ('Error when linking !');
  { Removing test.txt still leaves new.txt }
  If not Unlink ('test.txt') then
    Writeln ('Error when unlinking !');
  Assign (f,'new.txt');
  Reset (F);
  While not EOF(f) do 
    begin
    Readln(F,S);
    Writeln ('> ',s);
    end;
 Close (f);
 { Remove new.txt also }
 If not Unlink ('new.txt') then
   Writeln ('Error when unlinking !');
end.



Michael Van Canneyt
Thu Sep 10 13:59:33 CEST 1998