ИМЯ¶
link - создать
новое имя
файла
ОБЗОР¶
#include <unistd.h>
int link(const char *oldpath, const char
*newpath);
ОПИСАНИЕ¶
link создает
новую ссылку
(также
известную
как
"жесткая"
ссылка) на
существующий
файл.
Если
newpath
существует,
он
не будет
перезаписан.
Это новое имя
может
использоваться
точно так же,
как и старое,
для любых
операций;
оба имени
ссылаются на
один и тот же
файл (то есть
имеют те же
права
доступа и
владельца) и
невозможно
сказать,
какое имя
было
"настоящим".
ВОЗВРАЩАЕМОЕ
ЗНАЧЕНИЕ¶
В случае
успеха
возвращается
ноль. При
ошибке
возвращается
-1, а
errno
устанавливается
должным
образом.
ОШИБКИ¶
- EXDEV
- oldpath и newpath
находятся
на разных
файловых
системах.
- EPERM
- Файловая
система,
содержащая
oldpath и newpath, не
поддерживает
жесткие
ссылки.
- EFAULT
- oldpath или newpath
указывают
за пределы
доступного
адресного
пространства.
- EACCES
- Запись в
каталог,
содержащий
newpath, не
разрешен
для uid'а
процесса,
или же один
из
каталогов
oldpath или newpath не
разрешает
поиск.
- ENAMETOOLONG
- oldpath или newpath
слишком
длинны.
- ENOENT
- Одна из
частей пути
oldpath или newpath не
существует
или
является
"висячей"
символической
ссылкой.
- ENOTDIR
- Компонент
пути,
использованный
как каталог
в oldpath или newpath, в
действительности
таковым не
является.
- ENOMEM
- Ядру не
хватило
памяти.
- EROFS
- Файл
находится
на файловой
системе,
смонтированной
только для
чтения.
- EEXIST
- newpath уже
существует.
- EMLINK
- Файл, на
который
ссылается
oldpath уже имеет
максимальное
количество
ссылок.
- ELOOP
- oldpath или newpath
содержат
зацикленную
символическую
ссылку, то
есть при ее
подстановке
происходит
ссылка на
нее саму.
- ENOSPC
- На
устройстве,
содержащем
файл, нет
места для
создания
новой
записи в
каталоге.
Это может
произойти
также, если
исчерпана
квота
дискового
пространства
пользователя.
- EPERM
- oldpath
является
записью . or ..
ЗАМЕЧАНИЯ¶
Жесткие
ссылки,
созданные с
помощью
link, не
могут
указывать в
другие
файловые
системы.
Если это
требуется,
используйте
symlink.
СООТВЕТСТВИЕ
СТАНДАРТАМ¶
SVr4, SVID, POSIX, BSD 4.3. SVr4
документирует
дополнительные
коды ошибки
ENOLINK и EMULTIHOP; POSIX.1 не
документирует
ELOOP.
НЕДОСТАТКИ
РЕАЛИЗАЦИИ¶
На файловых
системах NFS
код возврата
может быть
неверен в
случае, если
NFS-сервер
создает
ссылку и
умирает,
прежде чем
сообщает об
этом.
Используйте
stat(2), чтобы
узнать,
создалась ли
ссылка.
СМОТРИ
ТАКЖЕ¶
symlink(2),
unlink(2),
rename(2),
open(2),
stat(2),
ln(1),
link(8).
ПЕРЕВОД¶
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999-2000