- libbson 1.13.1 »
- API Reference »
- bson_t

# bson_new_from_buffer()

## Synopsis

    bson_t *
    bson_new_from_buffer (uint8_t **buf,
                          size_t *buf_len,
                          bson_realloc_func realloc_func,
                          void *realloc_func_ctx);

## Parameters

- `buf`: An out-pointer to a buffer containing a serialized BSON document, or to NULL.
- `buf_len`: An out-pointer to the length of the buffer in bytes.
- `realloc_func`: Optional bson_realloc_func for reallocating the buffer.
- `realloc_func_ctx`: Optional pointer that will be passed as `ctx` to `realloc_func`.

## Description

Creates a new bson_t using the data provided.

The `realloc_func`, if provided, is called to resize `buf` if the document is later expanded, for example by a call to one of the `bson_append` functions.

If `*buf` is initially NULL then it is allocated, using `realloc_func` or the default allocator, and initialized with an empty BSON document, and `*buf_len` is set to 5, the size of an empty document.

## Returns

A newly-allocated bson_t on success, or NULL.

### See Also:

bson_concat

bson_init

bson_init_from_json

bson_init_static

bson_new

bson_new_from_data

bson_new_from_json

bson_reinit

bson_reserve_buffer

bson_sized_new

Created using Sphinx 1.8.3, based on Sphinx Readable Theme.