rfio_symlink man page

RFIO_SYMLINK(3) Rfio Library Functions RFIO_SYMLINK(3)

[1mNAME[0m
rfio_symlink - create a symbolic link to a file

[1mSYNOPSIS[0m
[1m#include <sys/types.h>[0m
[1m#include "rfio_api.h"[0m

[1mint rfio_symlink (const char *[4m[22moldpath[24m[1m, const char *[4m[22mnewpath[24m[1m);[0m
[1mint rfio_msymlink (const char *[4m[22moldpath[24m[1m, const char *[4m[22mnewpath[24m[1m);[0m
[1mint rfio_msymlink_reset ();[0m
[1mint rfio_symend ();[0m

[1mDESCRIPTION[0m
[1mrfio_symlink [22mcreates a symbolic link [4mnewpath[24m which contains the string
[4moldpath[24m.

[4mnewpath[24m may point to a non existing file.
If [4mnewpath[24m exists already, it will not be overwritten.
Write permission is required on [4mnewpath[24m parent.

[1mrfio_msymlink [22mis identical to [1mrfio_symlink [22mbut 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 [1mrfio_msymlink [22mcall should be followed by a call to
[1mrfio_symend[22m.

[1mrfio_msymlink_reset [22mis to be used when your program is forking. In such
a case the permanent connections opened with [1mrfio_msymlink [22mbecome
shared between the parent and the child. Use [1mrfio_msymlink_reset [22mto
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.

[1mRETURN VALUE[0m
This routine returns 0 if the operation was successful or -1 if the
operation failed. In the latter case, [1mserrno [22mis set appropriately.

[1mNOTES[0m
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 [1mrfio_msymlink_reset [22min
such case.

Multiple connections behaviour is undefined if you work in a multi-
threaded environment and with threads [1mnot [22mcreated using the LCG's
[1mCthread [22minterface.

[1mERRORS[0m
[1mENOENT [22mA component of [4mnewpath[24m prefix does not exist or [4moldpath[24m is
a null pathname.

[1mENOMEM [22mInsufficient memory.

[1mEACCES [22mSearch permission is denied on a component of the [4mnewpath[0m
prefix or write permission on the [4mnewpath[24m parent directory
is denied.

[1mEFAULT [4m[22moldpath[24m or [4mnewpath[24m is a NULL pointer.

[1mEEXIST [4m[22mnewpath[24m already exists.

[1mENOTDIR [22mA component of the [4mnewpath[24m prefix is not a directory.

[1mENAMETOOLONG [22mThe length of [4moldpath[24m or [4mnewpath[24m exceeds [1mCA_MAXPATHLEN [22mor
the length of a path component exceeds [1mCA_MAXNAMELEN[22m.

[1mSENOSHOST [22mHost unknown.

[1mSENOSSERV [22mService unknown.

[1mSECOMERR [22mCommunication error.

[1mSEOPNOTSUP [22mNot supported on Windows.

[1mSEE ALSO[0m
[1mCastor_limits(4)[22m, [1mrfio_readlink(3)[22m, [1mrfio_unlink(3)[22m, [1mCthread(3)[0m

[1mAUTHOR[0m
[1mLCG Grid Deployment [22mTeam

LCG $Date: 2005/03/31 13:13:03 $ RFIO_SYMLINK(3)

Referenced By

rfio_msymlink(3) is an alias of rfio_symlink(3).