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




     unlink, unlinkat - remove directory entry

     #include <unistd.h>

     int unlink(const char *path);

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

     The unlink() function removes a link  to  a  file.  If  path
     names  a  symbolic  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.  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(5). If the flag argument is 0, the behavior of unlin-
     kat() is the same as unlink() except in  the  processing  of
     its  path  argument. If path is absolute, unlinkat() behaves
     the same as unlink() and the dirfd argument  is  unused.  If
     path  is  relative and dirfd has the value AT_FDCWD, defined
     in <fcntl.h>, unlinkat() also behaves the same as  unlink().
     Otherwise, path is resolved relative to the directory refer-
     enced by the dirfd argument.

     If the flag argument  is  set  to  the  value  AT_REMOVEDIR,
     defined   in  <fcntl.h>,  unlinkat()  behaves  the  same  as
     rmdir(2) except in the processing of the  path  argument  as
     described above.

     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()  returns,  but  the
     removal  of  the file contents is postponed until all refer-
     ences to the file are closed.

     If the path argument is a directory and the filesystem  sup-
     ports  unlink() and unlinkat() on directories, the directory
     is unlinked from its parent with no cleanup being performed.
     In  UFS,  the  disconnected directory will be found the next
     time the filesystem is checked with fsck(1M).  The  unlink()
     and  unlinkat()  functions  will  not  fail simply because a
     directory is not empty. The user with appropriate privileges
     can orphan a non-empty directory without generating an error

     If the path argument is a directory, the call will fail with
     errno set to EPERM.

     Upon successful completion,  unlink()  and  unlinkat()  will
     mark  for  update  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.

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

                     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.

                     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.

                     The entry to be unlinked is the mount  point
                     for a mounted file system.

                     The  path  argument  points  to  an  illegal

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

                     A signal was caught during the execution  of
                     the unlink() function.

                     Too many symbolic links were encountered  in
                     translating path.

                     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

                     The named file does not exist or is  a  null

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

                     A component of the  path  prefix  is  not  a
                     directory or the provided directory descrip-
                     tor for unlinkat() is not AT_FDCWD  or  does
                     not reference a directory.

                     The named file is a directory; the implemen-
                     tation  does  not support unlink() or unlin-
                     kat() on directories.

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

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

                     Pathname resolution of a symbolic link  pro-
                     duced  an  intermediate  result whose length
                     exceeds {PATH_MAX}.

                     The entry to be unlinked is the last  direc-
                     tory entry to a pure procedure (shared text)
                     file that is being executed.

     Applications should use rmdir(2) to remove a directory.

     See attributes(5) for descriptions of the  following  attri-

     tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i)  ATTRI-
     BUTE  TYPEATTRIBUTE  VALUE  _ Interface StabilityCommitted _

See Also
     rm(1), close(2),  link(2),  open(2),  rmdir(2),  remove(3C),
     attributes(5), privileges(5), fsattr(5)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.