UNLINK(2)

НАЗВАНИЕ
unlink - удаление элемента каталога

СИНТАКСИС


        int unlink (path)

        char *path;

ОПИСАНИЕ
Системный вызов unlink удаляет элемент каталога, заданный маршрутным именем, на которое указывает аргумент path.

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

[ENOTDIR]
Компонент маршрута не является каталогом.
[ENOENT]
Заданный файл не существует.
[EACCES]
Нет права на поиск для компонента маршрута.
[EACCES]
Удаление элемента требует записи в каталог, права на запись в который нет.
[EPERM]
Заданный файл является каталогом, а действующий идентификатор пользователя не есть идентификатор суперпользователя.
[EBUSY]
Элемент каталога, который должен быть удален, является точкой подключения для смонтированной файловой системы.
[ETXTBSY]
Удаляемый элемент каталога является последней ссылкой на программный файл, который выполняется.
[EROFS]
Удаляемый элемент каталога принадлежит файловой системе, доступной только на чтение.
[EFAULT]
Аргумент path указывают за пределы отведенного процессу адресного пространства.
[EINTR]
Во время выполнения системного вызова перехвачен сигнал.
[ENOLINK]
Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет.
[EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам.

Когда все ссылки на файл удалены и нет процесса, для которого этот файл является открытым, занимаемое файлом пространство освобождается и файл перестает существовать. Если один или более процессов имеют файл открытым, когда удаляется последняя ссылка на него, то фактически уничтожение файла откладывается до момента закрытия его всеми процессами.

СМ. ТАКЖЕ
close(2), link(2), open(2).
rm(1) в Справочнике пользователя.

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