libssh2_channel_write_ex.3 (2030B)
1.TH libssh2_channel_write_ex 3 "1 Jun 2007" "libssh2 0.15" "libssh2" 2.SH NAME 3libssh2_channel_write_ex - write data to a channel stream blocking 4.SH SYNOPSIS 5.nf 6#include <libssh2.h> 7 8ssize_t 9libssh2_channel_write_ex(LIBSSH2_CHANNEL *channel, 10 int stream_id, char *buf, 11 size_t buflen); 12.fi 13.SH DESCRIPTION 14Write data to a channel stream. All channel streams have one standard I/O 15substream (stream_id == 0), and may have up to 2^32 extended data streams as 16identified by the selected \fIstream_id\fP. The SSH2 protocol currently 17defines a stream ID of 1 to be the stderr substream. 18 19\fIchannel\fP - active channel stream to write to. 20 21\fIstream_id\fP - substream ID number (e.g. 0 or SSH_EXTENDED_DATA_STDERR) 22 23\fIbuf\fP - pointer to buffer to write 24 25\fIbuflen\fP - size of the data to write 26 27\fIlibssh2_channel_write(3)\fP and \fIlibssh2_channel_write_stderr(3)\fP are 28convenience macros for this function. 29 30\fIlibssh2_channel_write_ex(3)\fP will use as much as possible of the buffer 31and put it into a single SSH protocol packet. This means that to get maximum 32performance when sending larger files, you should try to always pass in at 33least 32K of data to this function. 34.SH RETURN VALUE 35Actual number of bytes written or negative on failure. 36LIBSSH2_ERROR_EAGAIN when it would otherwise block. While 37LIBSSH2_ERROR_EAGAIN is a negative number, it is not really a failure per se. 38.SH ERRORS 39\fILIBSSH2_ERROR_ALLOC\fP - An internal memory allocation call failed. 40 41\fILIBSSH2_ERROR_SOCKET_SEND\fP - Unable to send data on socket. 42 43\fILIBSSH2_ERROR_CHANNEL_CLOSED\fP - The channel has been closed. 44 45\fILIBSSH2_ERROR_CHANNEL_EOF_SENT\fP - The channel has been requested to be 46 47\fILIBSSH2_ERROR_BAD_USE\fP - This can be returned if you ignored a previous 48return for LIBSSH2_ERROR_EAGAIN and rather than sending the original buffer with 49the original size, you sent a new buffer with a different size. 50 51closed. 52.SH SEE ALSO 53.BR libssh2_channel_open_ex(3) 54.BR libssh2_channel_read_ex(3)