Provided by: liblfc-dev_1.8.7-3_amd64 bug

NAME

       lfc_rename - rename a LFC file or directory in the name server

SYNOPSIS

       #include <sys/types.h>
       #include "lfc_api.h"

       int lfc_rename (const char *oldpath, const char *newpath)

DESCRIPTION

       lfc_rename renames a LFC file or directory in the name server.

       oldpath and newpath must be of the same type, i.e. both regular files or both directories.

       If newpath exists already, it will be removed before the rename takes place. If newpath is
       a directory, it must be empty.

       When renaming a directory, newpath must not be a descendant of oldpath, i.e.  newpath must
       not contain a path prefix that names oldpath.

       Write  permission is required on both parents. If oldpath is a directory, write permission
       is required on it and if newpath is  an  existing  directory,  write  permission  is  also
       required on it.

       If any of the parents has the sticky bit S_ISVTX set, either

              the effective user ID of the requestor must match the owner ID of the file or

              the effective user ID of the requestor must match the owner ID of the directory or

              the file must be writable by the requestor or

              the requestor must have ADMIN privilege in the Cupv database.

RETURN VALUE

       This  routine  returns 0 if the operation was successful or -1 if the operation failed. In
       the latter case, serrno is set appropriately.

ERRORS

       ENOENT       A component of oldpath prefix does not exist or oldpath or newpath is a  null
                    pathname.

       EACCES       Search  permission  is  denied  on  a component of the path prefixes or write
                    permission on the parent directories is denied or oldpath is a directory  and
                    write permission is denied on oldpath or newpath.

       EFAULT       oldpath or newpath is a NULL pointer.

       EEXIST       newpath  is  an existing directory and is not empty or newpath is an existing
                    file with replicas.

       ENOTDIR      A component of the path prefixes is not a directory or oldpath is a directory
                    and newpath is an existing regular file.

       EISDIR       newpath is a directory while oldpath is a regular file.

       EINVAL       newpath is a descendant of oldpath.

       ENAMETOOLONG The  length  of  oldpath  or newpath exceeds CA_MAXPATHLEN or the length of a
                    path component exceeds CA_MAXNAMELEN.

       SENOSHOST    Host unknown.

       SENOSSERV    Service unknown.

       SECOMERR     Communication error.

       ENSNACT      Name server is not running or is being shutdown.

SEE ALSO

       Castor_limits(4), lfc_chdir(3), lfc_chmod(3), lfc_unlink(3), Cupvlist(1)

AUTHOR

       LCG Grid Deployment Team