# mongoc_stream_read()

## Synopsis

    ssize_t
    mongoc_stream_read (mongoc_stream_t *stream,
                        void *buf,
                        size_t count,
                        size_t min_bytes,
                        int32_t timeout_msec);

## Parameters

- `stream`: A mongoc_stream_t.

- `buf`: The buffer to read into.

- `count`: The number of bytes to read.

- `min_bytes`: The minimum number of bytes to read, or else indicate failure.

- `timeout_msec`: The number of milliseconds to wait before failure, a timeout of 0 will not block. If negative, use the default timeout.

The mongoc_stream_read() function shall perform a read from a mongoc_stream_t. It’s modeled on the API and semantics of `read()`, though the parameters map only loosely.

## Returns

The mongoc_stream_read() function returns the number of bytes read on success. It returns `>= 0` and `< min_bytes` when end-of-file is encountered and `-1` on failure. `errno` is set upon failure.

See also

mongoc_stream_readv()
mongoc_stream_write()
mongoc_stream_writev()