symlink

SYMLINK(2)               Руководство программиста Linux               SYMLINK(2)



НАЗВАНИЕ
       symlink - создать новое имя для файла

ИСПОЛЬЗОВАНИЕ
       #include <unistd.h>

       int symlink(const char *topath, const char *frompath);

ОПИСАНИЕ
       symlink создает символическую ссылку, которая называется frompath и
       содержит строку topath.

       Символические ссылки интерпретируются "на лету", как будто бы содержимое
       ссылки было подставлено вместо пути, вдоль которого идет поиск файла или
       каталога.

       Символические ссылки могут содержать такие компоненты пути, как ..
       которые, (если используются в начале ссылки), ссылаются на родительский
       каталог того каталога, в котором находится ссылка.

       Символическая ссылка (также известная как "мягкая ссылка") может
       указывать как на существующий, так и на несуществующий файлы;  в
       последнем случае такая ссылка называется "висячей".

       Права доступа к символической ссылке не используются; владелец ее
       игнорируется при поиске по ссылке, но проверяется при удалении или
       переименовании ссылки, находящейся в каталоге с установленным "липким"
       битом.

       Если newpath существует, он не будет перезаписан.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       В случае успеха возвращается ноль.  При ошибке возвращается -1, а errno
       устанавливается должным образом.


ОШИБКИ
       EPERM   Файловая система, содержащая pathname, не поддерживает создание
               символических ссылок.

       EFAULT  oldpath или newpath указывают за пределы доступного адресного
               пространства.

       EACCES  Доступ для записи в каталог, содержащий newpath, не разрешен для
               фактического владельца процесса, или же один из каталогов,
               являющихся частью newpath, не допускает поиск.

       ENAMETOOLONG
               oldpath или newpath слишком длинны.

       ENOENT  Одна из частей пути oldpath или newpath не существует или
               является "висячей" символической ссылкой.

       ENOTDIR Компонент пути, использованный как каталог в oldpath или newpath,
               в действительности таковым не является.

       ENOMEM  Ядру не хватило памяти.

       EROFS   Файл находится на файловой системе, смонтированной только для
               чтения.

       EEXIST  newpath уже существует.

       ELOOP   newpath является зацикленной символической ссылкой, то есть при
               подстановке возникает ссылка на неё саму.

       ENOSPC  На устройстве, содержащем newpath, нет места для создания новой
               записи в каталоге.  Это может произойти также, если исчерпана
               квота дискового пространства пользователя.

ЗАМЕЧАНИЯ
       Не производится никакой проверки oldpath.

       Удаление имени, на которое ссылается другая символическая ссылка,
       действительно удалит файл (если только у него нет других жестких ссылок).
       Если такое поведение нежелательно, используйте link.

СООТВЕТСТВИЕ СТАНДАРТАМ
       SVr4, SVID, POSIX, BSD 4.3.  SVr4 документирует дополнительные коды
       ошибок EDQUOT, EIO, ENAMETOOLONG, ENOSYS.

ОШИБКИ
       Смотри open(2) по поводу множества файлов с одним именем и NFS.

СМОТРИ ТАКЖЕ
       link(2), unlink(2), rename(2), open(2), lstat(2), ln(1), link(8).

ПЕРЕВОД
       Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999



Linux                            21 August 1997                       SYMLINK(2)