#include <stdio.h> int
rename (const char *from const char *to);
DESCRIPTION
The
rename ();
system call
causes the link named
Fa from
to be renamed as
Fa to .
If
Fa to
exists, it is first removed.
Both
Fa from
and
Fa to
must be of the same type (that is, both directories or both
non-directories), and must reside on the same file system.
The
rename ();
system call
guarantees that if
Fa to
already exists, an instance of
Fa to
will always exist, even if the system should crash in
the middle of the operation.
If the final component of
Fa from
is a symbolic link,
the symbolic link is renamed,
not the file or directory to which it points.
RETURN VALUES
Rv -std rename
ERRORS
The
rename ();
system call
will fail and neither of the argument files will be
affected if:
Bq Er ENAMETOOLONG
A component of either pathname exceeded 255 characters,
or the entire length of either path name exceeded 1023 characters.
Bq Er ENOENT
A component of the
Fa from
path does not exist,
or a path prefix of
Fa to
does not exist.
Bq Er EACCES
A component of either path prefix denies search permission.
Bq Er EACCES
The requested link requires writing in a directory with a mode
that denies write permission.
Bq Er EPERM
The file pointed at by the
Fa from
argument has its immutable, undeletable or append-only flag set, see the
chflags(2)
manual page for more information.
Bq Er EPERM
The parent directory of the file pointed at by the
Fa from
argument has its immutable or append-only flag set.
Bq Er EPERM
The parent directory of the file pointed at by the
Fa to
argument has its immutable flag set.
Bq Er EPERM
The directory containing
Fa from
is marked sticky,
and neither the containing directory nor
Fa from
are owned by the effective user ID.
Bq Er EPERM
The file pointed at by the
Fa to
argument
exists,
the directory containing
Fa to
is marked sticky,
and neither the containing directory nor
Fa to
are owned by the effective user ID.
Bq Er ELOOP
Too many symbolic links were encountered in translating either pathname.
Bq Er ENOTDIR
A component of either path prefix is not a directory.
Bq Er ENOTDIR
The
Fa from
argument
is a directory, but
Fa to
is not a directory.
Bq Er EISDIR
The
Fa to
argument
is a directory, but
Fa from
is not a directory.
Bq Er EXDEV
The link named by
Fa to
and the file named by
Fa from
are on different logical devices (file systems).
Note that this error
code will not be returned if the implementation permits cross-device
links.
Bq Er 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.
Bq Er EDQUOT
The directory in which the entry for the new name
is being placed cannot be extended because the
user's quota of disk blocks on the file system
containing the directory has been exhausted.
Bq Er EIO
An I/O error occurred while making or updating a directory entry.
Bq Er EROFS
The requested link requires writing in a directory on a read-only file
system.
Bq Er EFAULT
Path
points outside the process's allocated address space.
Bq Er EINVAL
The
Fa from
argument
is a parent directory of
Fa to ,
or an attempt is made to rename
`.'
or
`..'
Bq Er ENOTEMPTY
The
Fa to
argument
is a directory and is not empty.