## Output to unstructured files

Output to unstructured files —

## Synopsis

                GsfOutput;
    GsfOutfile* gsf_output_container            (GsfOutput const *output);
    gsf_off_t   gsf_output_size                 (GsfOutput *output);
    gboolean    gsf_output_close                (GsfOutput *output);
    gsf_off_t   gsf_output_tell                 (GsfOutput *output);
    gboolean    gsf_output_seek                 (GsfOutput *output,
                                                 gsf_off_t offset,
                                                 GSeekType whence);
    gboolean    gsf_output_write                (GsfOutput *output,
                                                 size_t num_bytes,
                                                 guint8 const *data);
    gboolean    gsf_output_puts                 (GsfOutput *output,
                                                 char const *line);
    gboolean    gsf_output_printf               (GsfOutput *output,
                                                 char const *format,
                                                 ...);
    gsf_off_t   gsf_output_vprintf              (GsfOutput *output,
                                                 char const *format,
                                                 va_list args);
    charconst   * gsf_output_name               (GsfOutput const *output);
    gboolean    gsf_output_set_name_from_filename
                                                (GsfOutput *output,
                                                 char const *filename);
    GQuark      gsf_output_error_id             (void);
    gboolean    gsf_output_set_error            (GsfOutput *output,
                                                 gint code,
                                                 char const *format,
                                                 ...);
    GErrorconst * gsf_output_error              (GsfOutput const *output);
    gboolean    gsf_output_is_closed            (GsfOutput const *output);
    gboolean    gsf_output_wrap                 (GObject *wrapper,
                                                 GsfOutput *wrapee);
    gboolean    gsf_output_unwrap               (GObject *wrapper,
                                                 GsfOutput *wrapee);

## Object Hierarchy

      GObject
       +----GsfOutput
             +----GsfOutfile
             +----GsfOutputBzip
             +----GsfOutputCsv
             +----GsfOutputGZip
             +----GsfOutputIconv
             +----GsfOutputIOChannel
             +----GsfOutputMemory
             +----GsfOutputStdio

## Properties

      "is-closed"            gboolean              : Read
      "name"                 gchararray            : Read
      "position"             gint64                : Read
      "size"                 gint64                : Read

## Description

## Details

### GsfOutput

    typedef struct _GsfOutput GsfOutput;

### gsf_output_container ()

    GsfOutfile* gsf_output_container            (GsfOutput const *output);

`output` : |
Returns : | , but does not add a reference to `output`'s container. Potentially NULL

### gsf_output_size ()

    gsf_off_t   gsf_output_size                 (GsfOutput *output);

Determine the size of the output stream `output`.

`output` : | GsfOutput
Returns : | the size of the output, or -1 if it does not have a size.

### gsf_output_close ()

    gboolean    gsf_output_close                (GsfOutput *output);

Close a stream.

`output` : |
Returns : | FALSE on error

### gsf_output_tell ()

    gsf_off_t   gsf_output_tell                 (GsfOutput *output);

Tell the current position in `output`, similar to ftell(3).

`output` : | GsfOutput
Returns : | : the current position in the file

### gsf_output_seek ()

    gboolean    gsf_output_seek                 (GsfOutput *output,
                                                 gsf_off_t offset,
                                                 GSeekType whence);

Reposition in output stream `output`. `whence` specifies what the offset is relative to: the beginning of the stream (`G_SEEK_SET`), current position in the stream (`G_SEEK_CUR`) or the end of the stream (`G_SEEK_END`). This function is similar to fseek(3).

`output` : | GsfOutput
`offset` : | Relative amount to reposition
`whence` : | What the offset is relative to.
Returns : | FALSE on error.

### gsf_output_write ()

    gboolean    gsf_output_write                (GsfOutput *output,
                                                 size_t num_bytes,
                                                 guint8 const *data);

Write `num_bytes` of `data` to `output`.

`output` : | Output stream
`num_bytes` : | Number of bytes to write
`data` : | Data to write.
Returns : | : FALSE on error.

### gsf_output_puts ()

    gboolean    gsf_output_puts                 (GsfOutput *output,
                                                 char const *line);

Like fputs, this assumes that the line already ends with a newline

`output` : | A GsfOutput
`line` : | `null` terminated string to write
Returns : | TRUE if successful, FALSE if not

### gsf_output_printf ()

    gboolean    gsf_output_printf               (GsfOutput *output,
                                                 char const *format,
                                                 ...);

Output `Varargs` to `output` using the format string `format`, similar to printf(3).

`output` : | A GsfOutput
`format` : | The printf-style format string
`...` : | the arguments for `format`
Returns : | : TRUE if successful, FALSE if not

### gsf_output_vprintf ()

    gsf_off_t   gsf_output_vprintf              (GsfOutput *output,
                                                 char const *format,
                                                 va_list args);

Output `args` to `output` using the format string `format`, similar to vprintf(3).

`output` : | A GsfOutput
`format` : | The printf-style format string
`args` : | the arguments for `format`
Returns : | : number of bytes printed, a negative value if not successful

### gsf_output_name ()

    charconst   * gsf_output_name               (GsfOutput const *output);

Give the name of `output`.

`output` : | GsfOutput
Returns : | : `output`'s name in utf8 form, DO NOT FREE THIS STRING

### gsf_output_set_name_from_filename ()

    gboolean    gsf_output_set_name_from_filename
                                                (GsfOutput *output,
                                                 char const *filename);

### Note

This is a utility routine that should only be used by derived outputs.

`output` : | the output stream
`filename` : | the (fs-sys encoded) filename
Returns : | TRUE if the assignment was ok.

### gsf_output_error_id ()

    GQuark      gsf_output_error_id             (void);

Returns : |

### gsf_output_set_error ()

    gboolean    gsf_output_set_error            (GsfOutput *output,
                                                 gint code,
                                                 char const *format,
                                                 ...);

### Note

This is a utility routine that should only be used by derived outputs.

`output` : |
`code` : |
`format` : |
`...` : |
Returns : | Always returns FALSE to facilitate its use.

### gsf_output_error ()

    GErrorconst * gsf_output_error              (GsfOutput const *output);

`output` : |
Returns : | the last error logged on the output, or NULL.

### gsf_output_is_closed ()

    gboolean    gsf_output_is_closed            (GsfOutput const *output);

`output` : |
Returns : | TRUE if `output` has already been closed.

### gsf_output_wrap ()

    gboolean    gsf_output_wrap                 (GObject *wrapper,
                                                 GsfOutput *wrapee);

`wrapper` : |
`wrapee` : |
Returns : | TRUE if the wrapping succeeded.

### gsf_output_unwrap ()

    gboolean    gsf_output_unwrap               (GObject *wrapper,
                                                 GsfOutput *wrapee);

`wrapper` : |
`wrapee` : |
Returns : | TRUE if the unwrapping succeeded.

## Property Details

### The "`is-closed`" property

      "is-closed"            gboolean              : Read

Whether the Output is Closed.

Default value: FALSE

### The "`name`" property

      "name"                 gchararray            : Read

The Output's Name.

Default value: NULL

### The "`position`" property

      "position"             gint64                : Read

The Output's Current Position.

Allowed values: >= 0

Default value: 0

### The "`size`" property

      "size"                 gint64                : Read

The Output's Size.

Allowed values: >= 0

Default value: 0