которая может быть легко обработана
Превышение этой глубины приводит к возникновению ошибки "Слишком много мягких связей", которая может быть легко обработана приложением. Поэтому ограничения на тип файлов, к которым может вести мягкая связь, в операционной системе UNIX не вводятся.
Для создания мягких связей
применяются уже знакомая нам команда операционной системы ln
с опцией -s
и системный вызов symlink().
Надо отметить, что системный вызов symlink()
также не требует предварительного открытия связываемого файла, поскольку он вообще не рассматривает его содержимое.
Системный вызов symlink()
Прототип системного вызова
#include <unistd.h> int symlink(char *pathname, char *linkpathname);
Описание системного вызова
Системный вызов symlink служит для создания символической (мягкой) связи к файлу с именем, на которое указывает параметр pathname. Указатель на имя создаваемой связи задается параметром linkpathname (полное или относительное имя связи).
Никакой проверки реального существования файла с именем pathname системный вызов не производит.
Возвращаемое значение
Системный вызов возвращает значение 0 при нормальном завершении и значение -1 при возникновении ошибки.
|
Операция удаления связей и файлов.
Системный вызов unlink(). При рассмотрении операции связывания файлов мы уже почти полностью рассмотрели, как производится операция удаления жестких связей и файлов. При удалении мягкой связи, т.е. фактически файла типа "связь", все происходит, как и для обычных файлов. Единственным изменением, с точки зрения логической структуры файловой системы, является то, что при действительном удалении узла, соответствующего файлу типа "связь", вместе с ним удаляется и выходящее из него неименованное ребро.
Дополнительно необходимо отметить, что условием реального удаления регулярного файла
с диска является не только равенство 0 значения его счетчика жестких связей,
но и отсутствие процессов, которые держат этот файл открытым. Если такие процессы есть, то удаление регулярного файла будет выполнено при его полном закрытии последним использующим файл процессом.
Содержание Назад Вперед