ИМЯ¶
symlink - создать
новое имя
для файла
ОБЗОР¶
#include <unistd.h>
int symlink(const char *topath, const char
*frompath);
ОПИСАНИЕ¶
symlink создает
символьную
ссылку,
которая
называется
frompath и
содержит
строку
topath.
Символьные
ссылки
интерпретируются
"на лету", как
будто бы
содержимое
ссылки было
подставлено
вместо пути,
по которому
идет поиск
файла или
каталога.
Символьные
ссылки могут
содержать
такие
компоненты
пути, как
..
которые,
(если
используются
в начале
ссылки),
ссылаются на
родительский
каталог того
каталога, в
котором
находится
ссылка.
Символьная
ссылка
(также
известная
как "мягкая
ссылка")
может
указывать
как на
существующий,
так и на
несуществующий
файлы; в
последнем
случае такая
ссылка
называется
"висячей".
Права
доступа к
символьной
ссылке не
используются;
её владелец
игнорируется
при поиске
по ссылке, но
проверяется
при удалении
или
переименовании
ссылки,
находящейся
в каталоге с
установленным
sticky битом.
Если
newpath
существует,
он
не будет
перезаписан.
ВОЗВРАЩАЕМОЕ
ЗНАЧЕНИЕ¶
В случае
успеха
возвращается
ноль. При
ошибке
возвращается
-1, а значение
errno
устанавливается
должным
образом.
ОШИБКИ¶
- EPERM
- Файловая
система,
содержащая
pathname, не
поддерживает
создание
символьных
ссылок.
- EFAULT
- oldpath или newpath
указывают
за пределы
доступного
адресного
пространства.
- EACCES
- Доступ
для записи в
каталог,
содержащий
newpath, не
разрешен
для
эффектиного
uid владельца
процесса,
или же один
из
каталогов,
являющихся
частью 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,
Виктор
Вислобоков
<corochoone@perm.ru> 2003