[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.

Documentation generated on: Feb 26 2014