LIBSSH2_SFTP * libssh2_sftp_init(LIBSSH2_SESSION *session);
Open a channel and initialize the SFTP subsystem. Although the SFTP subsystem operates over the same type of channel as those exported by the Channel API, the protocol itself implements its own unique binary packet protocol which must be managed with the libssh2_sftp_*() family of functions. When an SFTP session is complete, it must be destroyed using the libssh2_sftp_shutdown(3) function.
LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.
LIBSSH2_ERROR_SFTP_PROTOCOL - An invalid SFTP protocol response was received on the socket, or an SFTP operation caused an errorcode to be returned by the server.
LIBSSH2_ERROR_EAGAIN - Marked for non-blocking I/O but the call would block.