LINK(2)

НАЗВАНИЕ
link - создание ссылки на файл

СИНТАКСИС


        int link (path1, path2)

        char *path1, *path2;

ОПИСАНИЕ
Системный вызов link создает новую ссылку (элемент каталога) для существующего файла. Аргумент path1 указывает на маршрутное имя существующего файла, аргумент path2 - на маршрутное имя создаваемого элемента каталога.

Системный вызов link завершается неудачей и ссылка не создается, если выполнено хотя бы одно из следующих условий:

[ENOTDIR]
Компонент одного из маршрутов не является каталогом.
[ENOENT]
Компонент одного из маршрутов не существует.
[EACCES]
Для компонента одного из маршрутов отсутствует право на поиск.
[ENOENT]
Файл, заданный маршрутным именем path1, не существует.
[EEXIST]
Ссылка, заданная маршрутным именем path2, существует.
[EPERM]
Файл, заданный маршрутным именем path1, является каталогом, а действующий идентификатор пользователя не есть идентификатор суперпользователя.
[EXDEV]
Маршрутные имена path1 и path2 указывают на разные логические устройства (файловые системы).
[ENOENT]
Аргумент path2 указывает на пустое маршрутное имя.
[EACCES]
Создание ссылки требует записи в каталог, права на запись в который нет.
[EROFS]
Создание ссылки требует записи в каталог, расположенный в файловой системе, доступной только на чтение.
[EFAULT]
Аргумент path1 или path2 указывает за пределы отведенного процессу адресного пространства.
[EMLINK]
Превышается максимально допустимое количество ссылок на файл.
[EINTR]
Во время выполнения системного вызова перехвачен сигнал.
[ENOLINK]
Маршрутное имя path1 или path2 указывает на удаленный компьютер, связи с которым в данный момент нет.
[EMULTIHOP] Компоненты path1 или path2 требуют многократного обращения к удаленным компьютерам.

СМ. ТАКЖЕ
unlink(2).

ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.