#include <libssh2.h> ssize_t libssh2_channel_write_ex(LIBSSH2_CHANNEL *channel, int stream_id, char *buf, size_t buflen);
channel - active channel stream to write to.
stream_id - substream ID number (e.g. 0 or SSH_EXTENDED_DATA_STDERR)
buf - pointer to buffer to write
buflen - size of the data to write
libssh2_channel_write(3) and libssh2_channel_write_stderr(3) are convenience macros for this function.
libssh2_channel_write_ex(3) will use as much as possible of the buffer and put it into a single SSH protocol packet. This means that to get maximum performance when sending larger files, you should try to always pass in at least 32K of data to this function.
LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.
LIBSSH2_ERROR_CHANNEL_CLOSED - The channel has been closed.
LIBSSH2_ERROR_CHANNEL_EOF_SENT - The channel has been requested to be closed.