Man Linux: Main Page and Category List

NAME

       rfio_symlink - create a symbolic link to a file

SYNOPSIS

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

       int rfio_symlink (const char *oldpath, const char *newpath);
       int rfio_msymlink (const char *oldpath, const char *newpath);
       int rfio_msymlink_reset ();
       int rfio_symend ();

DESCRIPTION

       rfio_symlink  creates a symbolic link newpath which contains the string
       oldpath.

       newpath may point to a non existing file.
       If newpath exists already, it will not be overwritten.
       Write permission is required on newpath parent.

       rfio_msymlink is identical to rfio_symlink  but  keeps  the  connection
       open  to  the  server  unless  there  are more than MAXMCON connections
       already opened. This is useful when issuing a series of symlink  calls.
       The   last   rfio_msymlink  call  should  be  followed  by  a  call  to
       rfio_symend.

       rfio_msymlink_reset is to be used when your program is forking. In such
       a  case  the  permanent  connections  opened  with rfio_msymlink become
       shared between the parent and the  child.  Use  rfio_msymlink_reset  to
       perform  the necessary reset and close of the socket file descriptor in
       the parent or the child in order to be sure  that  only  of  them  will
       receice an answer from the RFIO daemon.

       See NOTES section below.

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.

NOTES

       Multiple  connections  using  rfio_msymlink  are  thread-safe  but  not
       process-wide,  therefore  a  forked  child  can  share file descriptors
       opened with rfio_msymlink by its  parent.  Use  rfio_msymlink_reset  in
       such case.

       Multiple  connections  behaviour  is  undefined if you work in a multi-
       threaded environment and with  threads  not  created  using  the  LCG’s
       Cthread interface.

ERRORS

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

       ENOMEM       Insufficient memory.

       EACCES       Search permission is denied on a component of the  newpath
                    prefix or write permission on the newpath parent directory
                    is denied.

       EFAULT       oldpath or newpath is a NULL pointer.

       EEXIST       newpath already exists.

       ENOTDIR      A component of the newpath prefix is not a directory.

       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.

       SEOPNOTSUP   Not supported on Windows.

SEE ALSO

       Castor_limits(4), rfio_readlink(3), rfio_unlink(3), Cthread(3)

AUTHOR

       LCG Grid Deployment Team