unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



rename(2)							    rename(2)



NAME
  rename -  Renames a directory	or a file within a file	system

SYNOPSIS

  #include <&lt;stdio.h>&gt;

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

  [Tru64 UNIX]	The following definition of the	rename() function does not
  conform to current standards and is supported	only for backward compatibil-
  ity (see standards(5)):

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

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  rename(): XSH5.0

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

PARAMETERS

  from	    Identifies the file	or directory to	be renamed.

  to	    Identifies the new pathname	of the file or directory to be
	    renamed. If	the to parameter is an existing	file or	empty direc-
	    tory, it is	replaced by the	from parameter.	If the to parameter
	    is a nonempty directory, the rename() function exits with an
	    error.

DESCRIPTION

  The rename() function	renames	a directory or a file within a file system.

  For rename() to complete successfully, the calling process must have write
  and search permission	to the parent directories of both the from and to
  parameters. If the from parameter is a directory and the parent directories
  of from and to are different,	then the calling process must have write and
  search permission to the from	parameter as well.

  If the from and to parameters	both refer to the same existing	file, the
  rename() function returns successfully and performs no other action.


  Both the from	and to parameters must be of the same type (that is, both
  directories or both nondirectories) and must reside on the same file sys-
  tem. If the to parameter already exists, it is first removed.	In this	case
  it is	guaranteed that	a link named the to parameter will exist throughout
  the operation. This link refers to the file named by either the to or	from
  parameter before the operation began.

  If the final component of the	from parameter is a symbolic link, the sym-
  bolic	link (not the file or directory	to which it points) is renamed.	 If
  the final component of the to	parameter is a symbolic	link, the symbolic
  link is destroyed.

  If the from and to parameters	name directories, the following	must be	true:

    +  The from	parameter is not an ancestor of	the to parameter.  For exam-
       ple, the	to pathname must not contain a path prefix that	names from.

    +  The from	parameter is well-formed.  For example,	the . (dot) entry in
       from, if	it exists, refers to the same directory	as from, exactly one
       directory has a link to from (excluding the self-referential . ), and
       the .. (dot-dot)	entry in from, if it exists, refers to the directory
       that contains an	entry for from.

    +  The to parameter, if it exists, must be well-formed (as defined previ-
       ously).

  Upon successful completion, the rename() function marks the st_ctime and
  st_mtime fields of the parent	directory of each file for update.

RETURN VALUES

  Upon successful completion, the rename() function returns a value of 0
  (zero).  Otherwise, a	value of -1 is returned, and errno is set to indicate
  the error.

ERRORS

  If the rename() function fails, the file or directory	name remains
  unchanged and	errno may be set to one	of the following values:

  [EACCES]  Creating the requested link	requires writing in a directory	with
	    a mode that	denies write permission, or a component	of either
	    pathname denies search permission.

  [EBUSY]   The	directory named	by the from or to parameter is currently in
	    use	by the system or by another process.

  [EDQUOT]  The	directory that would contain to	cannot be extended because
	    the	user's quota of	disk blocks on the file	system containing the
	    directory is exhausted.

  [EEXIST]  The	to parameter is	an existing nonempty directory.

  [EFAULT]  Either the to or from parameter is an invalid address.

  [EINVAL]  Either the from or to parameter is not a well-formed directory,
	    an attempt is made to rename . (dot) or .. (dot-dot), or the from
	    parameter is an ancestor of	the to parameter.

  [EIO]	    [Tru64 UNIX] An I/O	error occurred when updating the (underlined)
	    directory.

  [EISDIR]  The	to parameter names a directory and the from parameter names a
	    nondirectory.

  [ELOOP]   Too	many links were	encountered in translating either to or	from.

  [ENAMETOOLONG]
	    The	length of the to or from parameters exceeds PATH_MAX or	a
	    pathname component is longer than NAME_MAX.

  [ENFILE]  Indicates either that the system file table	is full, or that
	    there are too many files currently open in the system.

  [ENOENT]  A component	of either path does not	exist, or either path is the
	    empty string, or the file named by the from	parameter does not
	    exist.

  [ENOSPC]  The	directory that would contain to	cannot be extended because
	    the	file system is out of space.

  [ENOTDIR] The	from parameter names a directory and the to parameter names a
	    nondirectory.

  [EPERM]   The	S_ISVTX	flag is	set on the directory containing	the file to
	    be renamed,	and the	caller is not the file owner.

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

  [EXDEV]   The	link named by the to parameter and the file named by the from
	    parameter are on different file systems.

RELATED	INFORMATION

  Commands: chmod(1), mkdir(1),	mv(1), mvdir(1)

  Functions: chmod(2), link(2),	mkdir(2), rmdir(2), unlink(2)

  Standards: standards(5)