GIO Reference Manual: GBufferedOutputStream

## GBufferedOutputStream GBufferedOutputStream — Buffered Output Stream |

## Functions

GOutputStream * | g_buffered_output_stream_new ()
GOutputStream * | g_buffered_output_stream_new_sized ()
gsize | g_buffered_output_stream_get_buffer_size ()
void | g_buffered_output_stream_set_buffer_size ()
gboolean | g_buffered_output_stream_get_auto_grow ()
void | g_buffered_output_stream_set_auto_grow ()

## Properties

gboolean | auto-grow | Read / Write
guint | buffer-size | Read / Write / Construct

## Types and Values

| GBufferedOutputStream

## Object Hierarchy

        GObject
        ╰── GOutputStream
            ╰── GFilterOutputStream
                ╰── GBufferedOutputStream

## Implemented Interfaces

GBufferedOutputStream implements GSeekable.

## Includes

    #include <gio/gio.h>

## Description

Buffered output stream implements GFilterOutputStream and provides for buffered writes.

By default, GBufferedOutputStream's buffer size is set at 4 kilobytes.

To create a buffered output stream, use `g_buffered_output_stream_new()`, or `g_buffered_output_stream_new_sized()` to specify the buffer's size at construction.

To get the size of a buffer within a buffered input stream, use `g_buffered_output_stream_get_buffer_size()`. To change the size of a buffered output stream's buffer, use `g_buffered_output_stream_set_buffer_size()`. Note that the buffer's size cannot be reduced below the size of the data within the buffer.

## Functions

### g_buffered_output_stream_new ()

    GOutputStream *
    g_buffered_output_stream_new (GOutputStream *base_stream);

Creates a new buffered output stream for a base stream.

#### Parameters

base_stream | a GOutputStream. |

#### Returns

a GOutputStream for the given `base_stream` .

### g_buffered_output_stream_new_sized ()

    GOutputStream *
    g_buffered_output_stream_new_sized (GOutputStream *base_stream,
                                        gsize size);

Creates a new buffered output stream with a given buffer size.

#### Parameters

base_stream | a GOutputStream. |
size | a gsize. |

#### Returns

a GOutputStream with an internal buffer set to `size` .

### g_buffered_output_stream_get_buffer_size ()

    gsize
    g_buffered_output_stream_get_buffer_size
                                   (GBufferedOutputStream *stream);

Gets the size of the buffer in the `stream` .

#### Parameters

stream | a GBufferedOutputStream. |

#### Returns

the current size of the buffer.

### g_buffered_output_stream_set_buffer_size ()

    void
    g_buffered_output_stream_set_buffer_size
                                   (GBufferedOutputStream *stream,
                                    gsize size);

Sets the size of the internal buffer to `size` .

#### Parameters

stream | a GBufferedOutputStream. |
size | a gsize. |

### g_buffered_output_stream_get_auto_grow ()

    gboolean
    g_buffered_output_stream_get_auto_grow
                                   (GBufferedOutputStream *stream);

Checks if the buffer automatically grows as data is added.

#### Parameters

stream | a GBufferedOutputStream. |

#### Returns

`TRUE` if the `stream` 's buffer automatically grows, `FALSE` otherwise.

### g_buffered_output_stream_set_auto_grow ()

    void
    g_buffered_output_stream_set_auto_grow
                                   (GBufferedOutputStream *stream,
                                    gboolean auto_grow);

Sets whether or not the `stream` 's buffer should automatically grow. If `auto_grow` is true, then each write will just make the buffer larger, and you must manually flush the buffer to actually write out the data to the underlying stream.

#### Parameters

stream | a GBufferedOutputStream. |
auto_grow | a gboolean. |

## Types and Values

### GBufferedOutputStream

    typedef struct _GBufferedOutputStream GBufferedOutputStream;

An implementation of GFilterOutputStream with a sized buffer.

## Property Details

### The `“auto-grow”` property

      “auto-grow”                gboolean

Whether the buffer should automatically grow.

Flags: Read / Write

Default value: FALSE

### The `“buffer-size”` property

      “buffer-size”              guint

The size of the backend buffer.

Flags: Read / Write / Construct

Allowed values: >= 1

Default value: 4096

## See Also

GFilterOutputStream, GOutputStream