The mi_streamread_lvarchar() function
The mi_streamread_lvarchar() function reads a varying-length structure (mi_lvarchar) value from a stream, converting any difference in the stream representation to that of the internal representation.
Syntax
mi_integer mi_streamread_lvarchar(strm_desc, varlen_dptr)
MI_STREAM *strm_desc;
mi_lvarchar **varlen_dptr;
- strm_desc
- A pointer to the stream descriptor for the open stream from which to read the varying-length structure.
- varlen_dptr
- A pointer to the buffer into which to copy the address of the mi_lvarchar varying-length structure.
Valid in client LIBMI application? | Valid in user-defined routine? |
---|---|
No | Yes |
Usage
The mi_streamread_lvarchar() function reads a varying-length structure from the stream that strm_desc references. The function reads the varying-length structure from the stream and puts the address of the value in the buffer that *varlen_dptr references. The read operation begins at the current stream seek position. You can use mi_stream_tell() or mi_stream_getpos() to obtain this seek position.
The mi_streamread_lvarchar() function is a constructor function for a varying-length structure. It allocates memory for this varying-length structure in the current memory duration.
This function is useful in a streamread() support function of an opaque data type that contains a varying-length structure (such as mi_lvarchar).
For more information about the use of mi_streamread_lvarchar() in a streamread() support function, see the HCL OneDB™ DataBlade® API Programmer's Guide.
Return values
- >=0
- The actual number of bytes that the function has read from the open stream to the value that varlen_dptr references.
- MI_STREAM_EEOF
- The end of the stream has been reached without any errors.
- MI_STREAM_EBADARG
- The stream descriptor that strm_desc references or the value that varlen_dptr references is invalid.
- MI_ERROR
- The function was not successful.