Minix Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
RENAME(2)                     System Calls Manual                    RENAME(2)

NAME
       rename - change the name of a file

SYNOPSIS
       #include <stdio.h>

       int rename(const char *from, const char *to)

DESCRIPTION
       Rename  causes  the link named from to be renamed as to.  If to exists,
       then it is first removed.  Both from and to must be of  the  same  type
       (that is, both directories or both non-directories), and must reside on
       the same file system.

       Rename guarantees that an instance of to will always exist, even if the
       system should crash in the middle of the operation.

       If the final component of from is a symbolic link, the symbolic link is
       renamed, not the file or directory to which it points.

RETURN VALUE
       A 0 value is returned  if  the  operation  succeeds,  otherwise  rename
       returns  -1  and the global variable errno indicates the reason for the
       failure.

ERRORS
       Rename will fail and neither of the argument files will be affected  if
       any of the following are true:

       [ENAMETOOLONG] A path name exceeds PATH_MAX characters.

       [ENOENT]       A  component  of the from path does not exist, or a path
                      prefix of to does not exist.

       [EACCES]       A  component  of  either  path  prefix   denies   search
                      permission.

       [EACCES]       The  requested link requires writing in a directory with
                      a mode that denies write permission.

       [EPERM]        The directory containing  from  is  marked  sticky,  and
                      neither  the  containing directory nor from are owned by
                      the effective user ID.

       [EPERM]        The to file  exists,  the  directory  containing  to  is
                      marked  sticky, and neither the containing directory nor
                      to are owned by the effective user ID.

       [ELOOP]        Too many symbolic links were encountered in  translating
                      either pathname.  (Minix-vmd)

       [ENOTDIR]      A component of either path prefix is not a directory.

       [ENOTDIR]      From is a directory, but to is not a directory.

       [EISDIR]       To is a directory, but from is not a directory.

       [EXDEV]        The  link  named by to and the file named by from are on
                      different logical devices (file systems).

       [ENOSPC]       The directory in which the entry for  the  new  name  is
                      being  placed  cannot  be  extended  because there is no
                      space left on the file system containing the directory.

       [EIO]          An  I/O  error  occurred  while  making  or  updating  a
                      directory entry.

       [EROFS]        The  requested link requires writing in a directory on a
                      read-only file system.

       [EFAULT]       Path points  outside  the  process's  allocated  address
                      space.

       [EINVAL]       From  is a parent directory of to, or an attempt is made
                      to rename ``.'' or ``..''.

       [ENOTEMPTY]    To is a directory and is not empty.

SEE ALSO
       open(2)

4.2 Berkeley Distribution        May 22, 1986                        RENAME(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | SEE ALSO