Системное программирование в UNIX средствами Free Pascal


         

Описание


uses linux;

Function SymLink(realname, symname:pathstr):Boolean;

После завершения вызова symlink создается файл symname, указывающий на файл realname. Если возникает ошибка, например, если файл с именем symname уже существует, то вызов symlink возвращает значение false. В случае успеха вызов возвращает истинное значение.

Пример использования SymLink:

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 SymLink ('test.txt','new.txt') then

    writeln ('Error when symlinking !');

  { Removing test.txt still leaves new.txt

    Pointing now to a non-existent file ! }

  If not Unlink ('test.txt') then

    Writeln ('Error when unlinking !');

  Assign (f,'new.txt');

  { This should fail, since the symbolic link

    points to a non-existent file! }

  {$i-}

  Reset (F);

  {$i+}

  If IOResult=0 then

    Writeln ('This shouldn''t happen');

 { Now remove new.txt also }

 If not Unlink ('new.txt') then

   Writeln ('Error when unlinking !');

end.

Если файл символьной ссылки открывается при помощи fdopen, то системный вызов fdopen корректно прослеживает путь к файлу realname. Если необходимо считать данные из самого файла symname, то нужно использовать системный вызов readlink.




Содержание  Назад  Вперед