IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 2 > rename man page

rename man page

Section 2 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





System Calls                                            rename(2)



NAME
     rename, renameat - change the name of a file

SYNOPSIS
     #include <stdio.h>

     int rename(const char *old, const char *new);

     #include <unistd.h>

     int renameat(int fromfd, const char *old,  int  tofd,  const
     char *new);

  XPG3
     #include <unistd.h>

     int rename(const char *old, const char *new);

DESCRIPTION
     The  rename() function changes the name of a file.  The  old
     argument  points  to the pathname of the file to be renamed.
     The new argument points to the new path name of the file.

     The renameat() function renames an  entry  in  a  directory,
     possibly  moving  the entry into a different directory.  See
     fsattr(5). If the old argument  is  an  absolute  path,  the
     fromfd is ignored.  Otherwise it is resolved relative to the
     fromfd argument rather than the current  working  directory.
     Similarly,  if  the  new  argument  is  not  absolute, it is
     resolved relative to the tofd argument.  If either fromfd or
     tofd  have  the  value  AT_FDCWD,  defined in <fcntl.h>, and
     their respective paths are relative, the  path  is  resolved
     relative to the current working directory.

     Current   implementation   restrictions   will   cause   the
     renameat() function to return an error if an attempt is made
     to rename an extended attribute  file  to  a  regular  (non-
     attribute)  file, or to rename a regular file to an extended
     attribute file.

     If old and new both refer to the  same  existing  file,  the
     rename()  and  renameat()  functions return successfully and
     performs no other action.

     If old points to the pathname of a file that is not a direc-
     tory,  new must not point to the pathname of a directory. If
     the link named by new exists, it will  be  removed  and  old
     will  be renamed to new. In this case, a link named new must
     remain visible to other processes  throughout  the  renaming
     operation  and  will refer to either the file referred to by
     new or the file referred to  as  old  before  the  operation
     began.



SunOS 5.10           Last change: 4 Nov 2002                    1






System Calls                                            rename(2)



     If old points to the pathname of a directory, new  must  not
     point  to the pathname of a file that is not a directory. If
     the directory named by new exists, it will  be  removed  and
     old  will  be renamed to new. In this case, a link named new
     will exist throughout the renaming operation and will  refer
     to  either the file referred to by new  or the file referred
     to as old before the operation began. Thus, if new names  an
     existing directory, it must be an empty directory.

     The new pathname must not contain a path prefix  that  names
     old. Write access permission is required for both the direc-
     tory containing old and the directory containing new. If old
     points to the  pathname of a directory, write access permis-
     sion is required for the  directory named by old, and, if it
     exists, the directory  named by new.

     If the directory containing old has the sticky bit set,   at
     least  one  of the following conditions listed below must be
     true:

       o  the user must own old

       o  the user must own the directory containing old

       o  old must be writable by the user

       o  the user must be a privileged user


     If new exists, and the directory containing new is  writable
     and  has  the sticky bit set, at least  one of the following
     conditions must be true:

       o  the user must own new

       o  the user must own the directory containing new

       o  new must be writable by the user

       o  the user must be a privileged user


     If the link named by  new  exists,  the  file's  link  count
     becomes zero when it is removed, and no process has the file
     open, then  the space occupied by the file will be freed and
     the  file  will  no  longer  be  accessible.  If one or more
     processes have the file open when the last link is  removed,
     the  link  will  be  removed  before  rename() or renameat()
     returns, but the removal of the file contents will be  post-
     poned until all references to the file have been closed.





SunOS 5.10           Last change: 4 Nov 2002                    2






System Calls                                            rename(2)



     Upon successful  completion,  the  rename()  and  renameat()
     functions  will  mark  for  update the st_ctime and st_mtime
     fields of the parent directory of each file.

RETURN VALUES
     Upon successful completion, 0 is returned. Otherwise, -1  is
     returned and errno is set to indicate an error.

ERRORS
     The rename() function will fail if:

     EACCES          A component of  either  path  prefix  denies
                     search  permission;  one  of the directories
                     containing old and new denies write  permis-
                     sions;  or  write  permission is denied by a
                     directory pointed to by old or new.



     EBUSY           The new argument  is  a  directory  and  the
                     mount point for a mounted file system.



     EDQUOT          The directory where the new  name  entry  is
                     being  placed cannot be extended because the
                     user's quota of disk  blocks  on  that  file
                     system has been exhausted.



     EEXIST          The link named by new is  a  directory  con-
                     taining  entries  other than `.' (the direc-
                     tory itself) and  `..'  (the  parent  direc-
                     tory).



     EFAULT          Either old  or  new  references  an  invalid
                     address.



     EINVAL          The new argument directory pathname contains
                     a  path prefix that names the old directory,
                     or an attempt was made to rename  a  regular
                     file  to  an  extended  attribute or from an
                     extended attribute to a regular file.







SunOS 5.10           Last change: 4 Nov 2002                    3






System Calls                                            rename(2)



     EISDIR          The new argument points to a  directory  but
                     old  points  to  a file that is not a direc-
                     tory.



     ELOOP           Too many symbolic links were encountered  in
                     translating the pathname.



     ENAMETOOLONG    The length of old or new exceeds   PATH_MAX,
                     or  a  pathname  component  is  longer  than
                     NAME_MAX while _POSIX_NO_TRUNC is in effect.



     EMLINK          The file named by old is  a  directory,  and
                     the  link  count of  the parent directory of
                     new would exceed  LINK_MAX.



     ENOENT          The link named by old does  not  exist,   or
                     either old or new points to an empty string.



     ENOSPC          The directory that would contain new  cannot
                     be extended.



     ENOTDIR         A component of either path prefix is  not  a
                     directory,  or old names a directory and new
                     names a nondirectory file, or tofd and dirfd
                     in renameat() do not reference a directory.



     EROFS           The requested operation requires writing  in
                     a directory on a read-only file system.



     EXDEV           The links named by old and new are  on  dif-
                     ferent file systems.



     EIO             An I/O error occurred while making or updat-
                     ing a directory entry.



SunOS 5.10           Last change: 4 Nov 2002                    4






System Calls                                            rename(2)



     The renameat() functions will fail if:

     ENOTSUP         An attempt was made to rename a regular file
                     as  an attribute file or to rename an attri-
                     bute file as a regular file.



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

     ____________________________________________________________
   |        ATTRIBUTE TYPE       |        ATTRIBUTE VALUE      |
   | ____________________________|_____________________________|_
   |  Interface Stability        |  rename()    is    Standard;|
   |                             |  renameat() is Evolving     |
   |_____________________________|_____________________________|
   | MT-Level                    | Async-Signal-Safe           |
   |_____________________________|_____________________________|


SEE ALSO
     chmod(2), link(2), unlink(2), attributes(5), fsattr(5)

NOTES
     The system can deadlock if there is a loop in the file  sys-
     tem  graph.  Such  a  loop can occur if there is an entry in
     directory a, a/name1, that is a hard link  to  directory  b,
     and an entry in directory b, b/name2, that is a hard link to
     directory a. When  such  a  loop  exists  and  two  separate
     processes  attempt  to rename a/name1 to b/name2 and b/name2
     to a/name1, the system may deadlock attempting to lock  both
     directories for modification.  Use symbolic links instead of
     hard links  for directories.




















SunOS 5.10           Last change: 4 Nov 2002                    5





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:27:06 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (4766 hits)
(openSUSE 10.2)

adv_cap_autoneg man page (4617 hits)
(Solaris 10 11_06)

CPAN man page (4352 hits)
(Suse Linux 10.1)

ssh man page (4196 hits)
(Suse Linux 10.1)

svn man page (3410 hits)
(FreeBSD 6.2)

startproc man page (1957 hits)
(Suse Linux 10.1)

pprosetup man page (1745 hits)
(Solaris 10 11_06)

netcat man page (1697 hits)
(Suse Linux 10.1)

signal man page (1686 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (1661 hits)
(Solaris 10 11_06)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Lift Passes :: Electronic Circuit Design :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum