| .TH libssh2_sftp_symlink_ex 3 "1 Jun 2007" "libssh2 0.15" "libssh2 manual" |
| .SH NAME |
| libssh2_sftp_symlink_ex - read or set a symbolic link |
| .SH SYNOPSIS |
| .nf |
| #include <libssh2.h> |
| #include <libssh2_sftp.h> |
| |
| int |
| libssh2_sftp_symlink_ex(LIBSSH2_SFTP *sftp, const char *path, |
| unsigned int path_len, char *target, |
| unsigned int target_len, int link_type); |
| .SH DESCRIPTION |
| Create a symlink or read out symlink information from the remote side. |
| |
| \fIsftp\fP - SFTP instance as returned by |
| .BR libssh2_sftp_init(3) |
| |
| \fIpath\fP - Remote filesystem object to create a symlink from or resolve. |
| |
| \fIpath_len\fP - Length of the name of the remote filesystem object to |
| create a symlink from or resolve. |
| |
| \fItarget\fP - a pointer to a buffer. The buffer has different uses depending |
| what the \fIlink_type\fP argument is set to. |
| .br |
| \fBLIBSSH2_SFTP_SYMLINK\fP: Remote filesystem object to link to. |
| .br |
| \fBLIBSSH2_SFTP_READLINK\fP: Pre-allocated buffer to resolve symlink target |
| into. |
| .br |
| \fBLIBSSH2_SFTP_REALPATH\fP: Pre-allocated buffer to resolve realpath target |
| into. |
| |
| \fItarget_len\fP - Length of the name of the remote filesystem target object. |
| |
| \fIlink_type\fP - One of the three previously mentioned constants which |
| determines the resulting behavior of this function. |
| |
| These are convenience macros: |
| |
| .BR libssh2_sftp_symlink(3) |
| : Create a symbolic link between two filesystem objects. |
| .br |
| .BR libssh2_sftp_readlink(3) |
| : Resolve a symbolic link filesystem object to its next target. |
| .br |
| .BR libssh2_sftp_realpath(3) |
| : Resolve a complex, relative, or symlinked filepath to its effective target. |
| .SH RETURN VALUE |
| When using LIBSSH2_SFTP_SYMLINK, this function returns 0 on success or negative |
| on failure. |
| |
| When using LIBSSH2_SFTP_READLINK or LIBSSH2_SFTP_REALPATH, it returns the |
| number of bytes it copied to the target buffer (not including the terminating |
| zero) or negative on failure. |
| |
| It returns LIBSSH2_ERROR_EAGAIN when it would otherwise block. While |
| LIBSSH2_ERROR_EAGAIN is a negative number, it isn't really a failure per se. |
| |
| From 1.2.8, LIBSSH2_ERROR_BUFFER_TOO_SMALL is returned if the given 'target' |
| buffer is too small to fit the requested object name. |
| .SH BUG |
| Passing in a too small buffer when receiving data only results in libssh2 |
| 1.2.7 or earlier to not copy the entire data amount, and it is not possible |
| for the application to tell when it happens! |
| .SH ERRORS |
| \fILIBSSH2_ERROR_ALLOC\fP - An internal memory allocation call failed. |
| |
| \fILIBSSH2_ERROR_SOCKET_SEND\fP - Unable to send data on socket. |
| |
| \fILIBSSH2_ERROR_SOCKET_TIMEOUT\fP - |
| |
| \fILIBSSH2_ERROR_SFTP_PROTOCOL\fP - An invalid SFTP protocol response was |
| received on the socket, or an SFTP operation caused an errorcode to |
| be returned by the server. |
| |
| .SH SEE ALSO |
| .BR libssh2_sftp_init(3) |