> Linux Reviews > man >

unlink

unlink


  1. unlink.2.man


1. unlink.2.man

Manpage of UNLINK

UNLINK

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

ИМЯ

unlink - удаляет имя и, возможно файл, на который оно ссылается  

ОБЗОР

#include <unistd.h>

int unlink(const char *pathname);  

ОПИСАНИЕ

unlink() удаляет имя из файловой системы. Если это имя было последней ссылкой на файл и больше нет процессов, которые держат этот файл открытым, данный файл удаляется и место, которое он занимает, освобождается для дальнейшего использования.

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

Если имя указывает на символьную ссылку, ссылка будет удалена.

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

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

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

ОШИБКИ

EACCES
Для эффективного UID процесса нет прав на запись в каталог, содержащийся в pathname, или в одном из каталогов в pathname не разрешён поиск. (См. также path_resolution(7).)
EBUSY (нет в Linux)
Файл pathname не может быть удалён, так как используется системой или другим процессом, и в данной реализации это считается ошибкой.
EFAULT
Аргумент pathname указывает за пределы доступного адресного пространства.
EIO
Произошла ошибка ввода-вывода.
EISDIR
pathname ссылается на каталог. (Этого значения нет в POSIX, возвращается в Linux начиная с 2.1.132.)
ELOOP
Во время определения pathname встретилось слишком много символьных ссылок.
ENAMETOOLONG
pathname слишком длинен.
ENOENT
Компонент pathname не существует, является повисшей ссылкой или pathname пуст.
ENOMEM
Недостаточное количество памяти ядра.
ENOTDIR
Компонент пути, использованный как каталог в pathname, в действительности таковым не является.
EPERM
Система не разрешает удаление каталогов или для удаления каталогов требуются права, которыми не обладает вызвавший процесс. (Этот код ошибки предусмотрен в POSIX; как описано выше, в Linux в этом случае возвращается EISDIR.)
EPERM (только в Linux)
Файловая система не позволяет удаление файлов.
EPERM или EACCES
На каталоге, содержащемся в pathname, установлен закрепляющий бит (S_ISVTX) и эффективный UID процесса не совпадает ни с UID удаляемого файла, ни с каталогом, в котором он содержится, и у процесса нет прав (Linux: нет мандата CAP_FOWNER).
EROFS
pathname находится на файловой системе, доступной только для чтения.
 

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

SVr4, 4.3BSD, POSIX.1-2001.  

ДЕФЕКТЫ

Неточности в протоколе NFS могут приводить к неожиданному исчезновению файлов, которые всё ещё используются.  

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

rm(1), chmod(2), link(2), mknod(2), open(2), rename(2), rmdir(2), unlinkat(2), mkfifo(3), remove(3), path_resolution(7), symlink(7)


 

Index

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

This document was created by man2html using the manual pages.
Time: 17:42:06 GMT, May 11, 2012

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