1libssh2_channel_write_ex(3) libssh2 libssh2_channel_write_ex(3)
2
3
4
6 libssh2_channel_write_ex - write data to a channel stream blocking
7
9 #include <libssh2.h>
10
11 ssize_t
12 libssh2_channel_write_ex(LIBSSH2_CHANNEL *channel,
13 int stream_id, char *buf,
14 size_t buflen);
15
17 Write data to a channel stream. All channel streams have one standard
18 I/O substream (stream_id == 0), and may have up to 2^32 extended data
19 streams as identified by the selected stream_id. The SSH2 protocol cur‐
20 rently defines a stream ID of 1 to be the stderr substream.
21
22 channel - active channel stream to write to.
23
24 stream_id - substream ID number (e.g. 0 or SSH_EXTENDED_DATA_STDERR)
25
26 buf - pointer to buffer to write
27
28 buflen - size of the data to write
29
30 libssh2_channel_write(3) and libssh2_channel_write_stderr(3) are conve‐
31 nience macros for this function.
32
33 libssh2_channel_write_ex(3) will use as much as possible of the buffer
34 and put it into a single SSH protocol packet. This means that to get
35 maximum performance when sending larger files, you should try to always
36 pass in at least 32K of data to this function.
37
39 Actual number of bytes written or negative on failure. LIBSSH2_ER‐
40 ROR_EAGAIN when it would otherwise block. While LIBSSH2_ERROR_EAGAIN is
41 a negative number, it is not really a failure per se.
42
44 LIBSSH2_ERROR_ALLOC - An internal memory allocation call failed.
45
46 LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.
47
48 LIBSSH2_ERROR_CHANNEL_CLOSED - The channel has been closed.
49
50 LIBSSH2_ERROR_CHANNEL_EOF_SENT - The channel has been requested to be
51
52 LIBSSH2_ERROR_BAD_USE - This can be returned if you ignored a previous
53 return for LIBSSH2_ERROR_EAGAIN and rather than sending the original
54 buffer with the original size, you sent a new buffer with a different
55 size.
56
57 closed.
58
60 libssh2_channel_open_ex(3) libssh2_channel_read_ex(3)
61
62
63
64libssh2 0.15 1 Jun 2007 libssh2_channel_write_ex(3)