5.1.5. Удаление файла

5.1.5. Удаление файла

Удаление файла означает удаление элемента каталога для файла и уменьшение счетчика ссылок на файл, который содержится в индексе. Содержимое файла и дисковые блоки, в котором оно размешается, не освобождаются до тех пор, пока счетчик ссылок не достигнет нуля.

Системный вызов называется unlink():

#include <unistd.h> /* POSIX */

int unlink(const char *pathname);

В нашем обсуждении ссылок на файлы имя имеет смысл; этот вызов удаляет данную ссылку (элемент каталога) для файла. Она возвращает 0 в случае успеха и -1 при ошибке. Возможность удаления файла требует права записи лишь для каталога, а не для самого файла. Этот факт может сбивать с толку, особенно начинающих пользователей Linux/Unix. Однако, поскольку операция в каталоге одна, это имеет смысл; меняется именно содержимое каталога, а не содержимое файла[52].

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

14.4.6. Удаление вершины дерева и удаление дерева: tdelete() и tdestroy()

Из книги автора

14.4.6. Удаление вершины дерева и удаление дерева: tdelete() и tdestroy() Наконец, вы можете удалить элементы из дерева и, на системах GLIBC, удалить само дерево целиком:void *tdelete(const void *key, void **rootp,int (*compare)(const void*, const void*));/* Расширение GLIBC, в POSIX нет: */void tdestroy(void *root, void (*free_node)(void *nodep));Аргументы


Установка размера файла, инициализация файла и разреженные файлы

Из книги автора

Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла


25.4.2. Удаление записей

Из книги автора

25.4.2. Удаление записей Удаление записей из базы данных осуществляется путем вызова функции dpout() и передачи ей ключа, данные которого необходимо удалить.int dpout(DEPOT * depot, const char * key, int keySize);Заданный ключ и связанные с ним данные удаляются из базы, после чего возвращается


10.11. Удаление каталога

Из книги автора

10.11. Удаление каталога ПроблемаТребуется удалить каталог, причем эта операция должна быть переносимой, т.е. в ней не должен использоваться специфичный для конкретной ОС программный интерфейс.РешениеНа большинстве платформ вы сможете воспользоваться системным вызовом


Удаление граней

Из книги автора

Удаление граней Для удаления граней команду редактирования тел SOLIDEDIT следует вызывать из падающего меню Modify ? Solid Editing ? Delete faces или щелчком на пиктограмме Delete faces на плавающей панели инструментов Solid Editing. При этом в команде используются ключи Face, Delete.При использовании


6.6.1. Удаление

Из книги автора

6.6.1. Удаление В общем случае удаление осуществляется двумя формами функции-члена erase(). Первая форма удаляет единственный элемент, вторая – диапазон, отмеченный парой итераторов. Для последнего элемента можно воспользоваться функцией-членом pop_back().При вызове erase()


6.12.5. Удаление элементов map

Из книги автора

6.12.5. Удаление элементов map Существуют три формы функции-члена erase() для удаления элементов отображения. Для единственного элемента используется erase() с ключом или итератором в качестве аргумента, а для последовательности эта функция вызывается с двумя итераторами.


Удаление домена

Из книги автора

Удаление домена Оператор DROP DOMAIN удаляет из базы данных существующее описание домена при условии, что домен не используется в каком-либо описании столбца базы данных.Чтобы не получить исключений, применяйте ALTER TABLE для удаления всех столбцов, использующих домен, а затем


Удаление

Из книги автора

Удаление Когда длительность фильма, редактируемого в Pinnacle Studio, велика (полчаса, час и более), файлы проекта могут занимать на диске очень много места. Когда часть проектов становится ненужной (фильм создан, DVD или видеокассеты записаны), их можно удалить. Для удаления


Удаление файлов

Из книги автора

Удаление файлов Если определенные файлы становятся ненужными, их можно выбросить в корзину (не в прямом смысле, конечно). Как это сделать?1) Отметим объекты, которые необходимо удалить.2) Щелкнем правой кнопкой мыши на одном из отмеченных значков и выберем в появившемся