[Overview][Constants][Types][Procedures and functions][Variables][Index] Reference for unit 'oldlinux' (#rtl)

Link

Create a hard link to a file

Declaration

Source position: oldlinux.pp line 1389

function Link(

  OldPath: PathStr;

  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 another entry.
sys_eperm
OldPath points to . or .. of a directory.

See also

SymLink

  

Create a symbolic link

UnLink

  

Unlink (i.e. remove) a file.

Example

Program Example21;

{ Program to demonstrate the Link and UnLink functions. }

Uses oldlinux;

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.
The latest version of this document can be found at lazarus-ccr.sourceforge.net.