unlink(2) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

unlink(2)

unlink(2)                        System Calls                        unlink(2)

NAME
       unlink, unlinkat - remove directory entry

SYNOPSIS
       #include <unistd.h>

       int unlink(const char *path);


       int unlinkat(int dirfd, const char *path, int flag);

DESCRIPTION
       The  unlink()  function  removes a link to a file. If path names a sym‐
       bolic link, unlink() removes the symbolic link named by path  and  does
       not  affect any file or directory named by the contents of the symbolic
       link. unlink() cannot be used on directories, and an attempt to  do  so
       will  fail.  Otherwise, unlink() removes the link named by the pathname
       pointed to by path and decrements the link count of the file referenced
       by the link.


       The unlinkat() function also removes a link to a file.  See  fsattr(7).
       If  the  flag  argument is 0, the behavior of unlinkat() is the same as
       unlink() except in the processing of its path argument. If path is  ab‐
       solute,  unlinkat() behaves the same as unlink() and the dirfd argument
       is unused. If path is relative and dirfd has the  value  AT_FDCWD,  de‐
       fined  in <fcntl.h>, unlinkat() also behaves the same as unlink(). Oth‐
       erwise, path is resolved relative to the directory  referenced  by  the
       dirfd argument.


       If  the flag argument is set to the value AT_REMOVEDIR, defined in <fc‐
       ntl.h>, unlinkat() behaves the same as rmdir(2) except in the  process‐
       ing of the path argument as described above. If the path argument names
       a  directory  and  AT_REMOVEDIR  is  not  set in the flag argument, un‐
       linkat() will fail.


       When the file's link count becomes 0 and no process has the file  open,
       the  space occupied by the file will be freed and the file is no longer
       accessible. If one or more processes have the file open when  the  last
       link  is removed, the link is removed before unlink() or unlinkat() re‐
       turns, but the removal of the file contents is postponed until all ref‐
       erences to the file are closed.


       Upon successful completion, unlink() and unlinkat() will mark  for  up‐
       date  the  st_ctime and st_mtime fields of the parent directory. If the
       file's link count is not 0, the st_ctime field  of  the  file  will  be
       marked for update.

RETURN VALUES
       Upon  successful  completion, 0 is returned. Otherwise, −1 is returned,
       errno is set to indicate the error, and the file is not unlinked.

ERRORS
       The unlink() and unlinkat() functions will fail if:

       EACCES          Search permission is denied for a component of the path
                       prefix, or write permission is denied on the  directory
                       containing the link to be removed.


       EACCES          The  parent  directory  has  the sticky bit set and the
                       file is not writable by the user, the user does not own
                       the parent directory, the user does not own  the  file,
                       and the user is not a privileged user.


       EBUSY           The  entry  to  be  unlinked  is  the mount point for a
                       mounted file system, or a previously unlinked NFS  file
                       waiting for references to be released.


       EFAULT          The path argument points to an illegal address.


       EILSEQ          The  path argument includes non-UTF8 characters and the
                       file system accepts only file names where  all  charac‐
                       ters are part of the UTF-8 character codeset.


       EINTR           A  signal  was  caught  during the execution of the un‐
                       link() function.


       ELOOP           Too many symbolic links were encountered in translating
                       path.


       ENAMETOOLONG    The length of the path argument  exceeds  PATH_MAX,  or
                       the  length  of a path component exceeds NAME_MAX while
                       _POSIX_NO_TRUNC is in effect.


       ENOENT          The named file does not exist or is a null pathname.


       ENOLINK         The path argument points to a remote  machine  and  the
                       link to that machine is no longer active.


       ENOTDIR         A component of the path prefix is not a directory.


       EPERM           The  file  or the parent directory has the immutable or
                       nounlink system attribute set.

                       The file has the rtime system  attribute  set  and  the
                       conditions of the filesystem's retention policy for re‐
                       moving  it  are  not  met.  See retention.policy in the
                       zfs(8) manual page.


       EROFS           The directory entry to be unlinked is part of  a  read-
                       only file system.



       The unlink() function will fail if:

       EPERM    The named file is a directory. Oracle Solaris does not support
                unlink() on directories.



       The unlinkat() function will fail if:

       ENOTDIR    The  provided  dirfd is not AT_FDCWD or does not reference a
                  directory.

                  The named file is not a directory and AT_REMOVEDIR  was  set
                  in the flag argument.


       EPERM      The  named  file is a directory and AT_REMOVEDIR was not set
                  in the flag argument.



       The unlink() and unlinkat() functions may fail if:

       ENAMETOOLONG    Pathname resolution of a symbolic link produced an  in‐
                       termediate result whose length exceeds {PATH_MAX}.


       ETXTBSY         The entry to be unlinked is the last directory entry to
                       a  pure procedure (shared text) file that is being exe‐
                       cuted.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE  VALUE  _  Interface StabilityCommitted _ MT-LevelAsync-Signal-
       Safe


SEE ALSO
       rm(1), close(2), link(2), open(2), rmdir(2), remove(3C), attributes(7),
       fsattr(7), privileges(7), sysattr(7)

HISTORY
       Support for unlinking directories was removed  in  the  Oracle  Solaris
       11.2.0  release.  Prior to that change, the behavior was filesystem de‐
       pendent. UFS allowed it for privileged users. It has  never  been  sup‐
       ported by ZFS.


       The unlinkat() function was added in the Solaris 9 release.


       The  unlink() function has been included in all Sun and Oracle releases
       of Solaris.

Oracle Solaris 11.4               30 Jan 2023                        unlink(2)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3