> Linux Reviews > man >

link


  1. link.2.man


1. link.2.man

Manpage of LINK

LINK

Section: Руководство программиста Linux (2)
Updated: 2008-08-21
Index Return to Main Contents
 

ИМЯ

link - создаёт ссылку на файл  

ОБЗОР

#include <unistd.h>

int link(const char *oldpath, const char *newpath);  

ОПИСАНИЕ

link() создаёт новую ссылку (также называемую жёсткую ссылку) на существующий файл.

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

Это новое имя может использоваться как и старое для любых операций; оба имени ссылаются на один файл (и имеют одинаковые права и владельцев) и невозможно сказать какое имя считать "изначальным".  

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.  

ОШИБКИ

EACCES
Нет прав на запись в каталог, содержащий newpath, или в одном из каталогов пути до oldpath или newpath не разрешён поиск (см. также path_resolution(7)).
EEXIST
newpath уже существует.
EFAULT
Значения oldpath и newpath указывают за пределы доступного адресного пространства.
EIO
Произошла ошибка ввода-вывода.
ELOOP
Во время определения oldpath или newpath встретилось слишком много символьных ссылок.
EMLINK
На файл, на который указывает oldpath, уже создано максимальное количество ссылок.
ENAMETOOLONG
Слишком длинное значение аргумента oldpath или newpath.
ENOENT
Компонент каталога в oldpath или newpath не существует или является повисшей ссылкой.
ENOMEM
Недостаточное количество памяти ядра.
ENOSPC
На устройстве, содержащем файл, нет места для создания нового элемента каталога.
ENOTDIR
Компонент, используемый как каталог в oldpath или newpath, на самом деле не является каталогом.
EPERM
oldpath является каталогом.
EPERM
Файловая система, содержащая oldpath и newpath, не поддерживает создание жёстких ссылок.
EROFS
Файл расположен в файловой системе, доступной только на чтение.
EXDEV
oldpath и newpath находятся не в одной смонтированной файловой системе. (Linux позволяет монтировать файловую систему в несколько точек, но link() не работает с отличающими точками монтирования, даже если в них смонтирована идентичная файловая система.)
 

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4, 4.3BSD, POSIX.1-2001 (но см. ЗАМЕЧАНИЯ).  

ЗАМЕЧАНИЯ

Жёсткие ссылки, создаваемые link(), не могут располагаться в разных файловых системах. Если это необходимо, используйте symlink(2).

В POSIX.1-2001 сказано, что link() должен разъименовывать oldpath, если он является символьной ссылкой. Однако, начиная с ядра версии 2.0, Linux также не поступает: если oldpath является символьной ссылкой, то newpath создаётся как (жёсткая) ссылка на файл этой символьной ссылки (т.е., newpath становится символьной ссылкой на файл, содержащий ссылку на oldpath). Некоторые другие реализации поступают также как Linux. В POSIX.1-2008 изменено описание link(), теперь разъименовывание символьной ссылки oldpath зависит от реализации. Для точного управления по обработке символьных ссылок при создании см. linkat(2).  

ДЕФЕКТЫ

В файловых системах NFS возвращаемый код может быть неправильным, если сервер NFS выполнит создание ссылки и завершит работу до возврата результата операции. Используйте stat(2), чтобы выяснить была ли создана ссылка.  

СМОТРИТЕ ТАКЖЕ

ln(1), linkat(2), open(2), rename(2), stat(2), symlink(2), unlink(2), path_resolution(7), symlink(7)


 

Index

ИМЯ
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
СООТВЕТСТВИЕ СТАНДАРТАМ
ЗАМЕЧАНИЯ
ДЕФЕКТЫ
СМОТРИТЕ ТАКЖЕ

This document was created by man2html using the manual pages.
Time: 17:41:24 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - SVENSKA - ja - nl - pl