symlink - создает новое имя файла
НАЗВАНИЕsymlink - создает новое имя файла
СИНТАКСИС
#include
int symlink(const char *topath, const char *frompath);
ОПИСАНИЕ
symlink создает символьную ссылку, которая называется
frompath, и содержит строку topath. Символьные ссылки
интерпретируются во время их исполнения, как если бы
содержимое ссылки было подставлено вместо полного имени
файла, по которому ведется поиск файла или каталога.
Символьные ссылки могут содержать такие компоненты пути,
как .., которые (если они стоят в начале ссылки),
указывают на родительский каталог этого каталога.
Символьная ссылка (также известная как "мягкая" ссылка)
может указывать как на существующий, так и на
несуществующий файлы; в последнем случае такая ссылка
называется "висячей". Права доступа к символьная ссылке
не нужны; владелец ее не учитывается во время поиска, но
проверяется при удалении или переименовании ссылки,
находящейся в каталоге с установленным битом
принадлежности. Если newpath существует, он не будет
перезаписан.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном завершении вызова возвращается ноль. При
ошибке возвращается -1, а переменной errno присваивается
номер ошибки.
КОДЫ ОШИБОК
EPERM Файловая система, содержащая pathname, не
поддерживает создание символьных ссылок.
EFAULT oldpath или newpath указывают на область за
пределами доступного адресного
пространства.
EACCES Доступ к записи в каталог, содержащий new-
path, фактическому владельцу процесса не
разрешен, или же один из каталогов,
являющихся частью 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, ENAMETOO-
LONG, ENOSYS. Смотри open(2) о множестве файлов с
одним именем и NFS.