.TH buffer_get 3 .SH NAME buffer_get \- read binary data from buffer .SH SYNTAX .B #include ssize_t \fBbuffer_get\fP(buffer* \fIb\fR,char* \fIx\fR,size_t \fIlen\fR); .SH DESCRIPTION Normally buffer_get copies data to \fIx\fR[0], \fIx\fR[1], ..., \fIx\fR[\fIlen\fR-1] from the beginning of a string stored in preallocated space; removes these \fIlen\fR bytes from the string; and returns \fIlen\fR. If, however, the string has fewer than \fIlen\fR (but more than 0) bytes, buffer_get copies only that many bytes, and returns that number. If the string is empty, buffer_get first uses a \fBread operation\fR to feed data into the string. The \fBread operation\fR may indicate end of input, in which case buffer_get returns 0; or a read error, in which case buffer_get returns -1, setting \fIerrno\fR appropriately. The preallocated space and the \fBread operation\fR are specified by \fIb\fR. You must initialize \fBb\fR using buffer_init before calling buffer_get (or use the pre-initialized buffer_0). .SH "SEE ALSO" buffer_init(3), buffer_feed(3), buffer_peek(3), buffer_seek(3), buffer(3)