COHERENT manpages

This page displays the COHERENT manpage for rename() [Rename a file].

List of available manpages
Index


rename() -- System Call (libc)

Rename a file
#include <stdio.h>
int rename(old; new)
char *old, *new;

The COHERENT system call rename() changes the name of a file, from the name
pointed to by old to that pointed to by new. Both old and new must point to
a valid file  name.  If new names a file  that already exists, the old file
is replaced by the file being renamed.

rename() returns zero if it could  rename old, and nonzero if it could not.
If rename() could not rename old, its name remains unchanged.

Example

This example  renames the file named in the  first command-line argument to
the name given in the second argument.

#include <stdio.h>
#include <stdlib.h>

main(argc, argv)
int argc; char *argv[];
{
    if (argc != 3) {
        fprintf(stderr, "usage: rename from to\n");
        exit(EXIT_FAILURE);
    }

    if(rename(argv[1], argv[2])) {
        perror("rename failed");
        exit(EXIT_FAILURE);
    }
    exit(EXIT_SUCCESS);
}

See Also

libc,
link(),
stdio.h,
unlink()
ANSI Standard, §7.9.4.2
POSIX Standard, §5.5.3

Notes

The ANSI  Standard states  that rename()  fails if old  is open, or  if its
contents must  be copied in  order to rename  it.  Under COHERENT,  it also
fails if new is already open.