## Reading and Writing from local files and directories

Reading and Writing from local files and directories —

## Synopsis

                GsfInputStdio;
    GsfInput*   gsf_input_stdio_new             (char const *filename,
                                                 GError **err);
    GsfInput*   gsf_input_stdio_new_FILE        (char const *filename,
                                                 FILE *file,
                                                 gboolean keep_open);
                GsfOutputStdio;
    GsfOutput*  gsf_output_stdio_new            (char const *filename,
                                                 GError **err);
    GsfOutput*  gsf_output_stdio_new_full       (char const *filename,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 ...);
    GsfOutput*  gsf_output_stdio_new_valist     (char const *filename,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 va_list var_args);
    GsfOutput*  gsf_output_stdio_new_FILE       (char const *filename,
                                                 FILE *file,
                                                 gboolean keep_open);
                GsfOutfileStdio;
    GsfOutfile* gsf_outfile_stdio_new           (char const *root,
                                                 GError **err);
    GsfOutfile* gsf_outfile_stdio_new_full      (char const *root,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 ...);
    GsfOutfile* gsf_outfile_stdio_new_valist    (char const *root,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 va_list var_args);
                GsfInfileStdio;
    GsfInfile*  gsf_infile_stdio_new            (char const *root,
                                                 GError **err);

## Object Hierarchy

      GObject
       +----GsfInput
             +----GsfInputStdio

      GObject
       +----GsfOutput
             +----GsfOutputStdio

      GObject
       +----GsfOutput
             +----GsfOutfile
                   +----GsfOutfileStdio

      GObject
       +----GsfInput
             +----GsfInfile
                   +----GsfInfileStdio

## Description

## Details

### GsfInputStdio

    typedef struct _GsfInputStdio GsfInputStdio;

### gsf_input_stdio_new ()

    GsfInput*   gsf_input_stdio_new             (char const *filename,
                                                 GError **err);

`filename` : | in utf8.
`err` : | optionally NULL.
Returns : | a new file or NULL.

### gsf_input_stdio_new_FILE ()

    GsfInput*   gsf_input_stdio_new_FILE        (char const *filename,
                                                 FILE *file,
                                                 gboolean keep_open);

Assumes ownership of `file`. If `keep_open` is true, ownership reverts to caller when the GsfObject is closed.

`filename` : | The filename corresponding to `file`.
`file` : | an existing stdio FILE *
`keep_open` : | Should `file` be closed when the wrapper is closed
Returns : | a new GsfInput wrapper for `file`. Note: the file must be seekable, so this will not work for stdin when that is a tty or pipe.

### GsfOutputStdio

    typedef struct _GsfOutputStdio GsfOutputStdio;

### gsf_output_stdio_new ()

    GsfOutput*  gsf_output_stdio_new            (char const *filename,
                                                 GError **err);

`filename` : | name of file to create or replace.
`err` : | optionally NULL.
Returns : | a new file or NULL.

### gsf_output_stdio_new_full ()

    GsfOutput*  gsf_output_stdio_new_full       (char const *filename,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 ...);

`filename` : | name of file to create or replace.
`err` : | optionally NULL.
`first_property_name` : | NULL terminated list of properties
`...` : |
Returns : | a new file or NULL.

### gsf_output_stdio_new_valist ()

    GsfOutput*  gsf_output_stdio_new_valist     (char const *filename,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 va_list var_args);

`filename` : |
`err` : |
`first_property_name` : |
`var_args` : |
Returns : |

### gsf_output_stdio_new_FILE ()

    GsfOutput*  gsf_output_stdio_new_FILE       (char const *filename,
                                                 FILE *file,
                                                 gboolean keep_open);

Assumes ownership of `file`. If `keep_open` is true, ownership reverts to caller when the GsfObject is closed.

`filename` : | The filename corresponding to `file`.
`file` : | an existing stdio FILE *
`keep_open` : | Should `file` be closed when the wrapper is closed
Returns : | a new GsfOutput wrapper for `file`. Warning: the result will be seekable only if `file` is seekable. If it is seekable, the resulting GsfOutput object will seek relative to `file`'s beginning, not its current location at the time the GsfOutput object is created.

### GsfOutfileStdio

    typedef struct _GsfOutfileStdio GsfOutfileStdio;

### gsf_outfile_stdio_new ()

    GsfOutfile* gsf_outfile_stdio_new           (char const *root,
                                                 GError **err);

`root` : | root directory in utf8.
`err` : | optionally NULL.
Returns : | a new outfile or NULL.

### gsf_outfile_stdio_new_full ()

    GsfOutfile* gsf_outfile_stdio_new_full      (char const *root,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 ...);

`root` : |
`err` : |
`first_property_name` : |
`...` : |
Returns : |

### gsf_outfile_stdio_new_valist ()

    GsfOutfile* gsf_outfile_stdio_new_valist    (char const *root,
                                                 GError **err,
                                                 char const *first_property_name,
                                                 va_list var_args);

`root` : |
`err` : |
`first_property_name` : |
`var_args` : |
Returns : |

### GsfInfileStdio

    typedef struct _GsfInfileStdio GsfInfileStdio;

### gsf_infile_stdio_new ()

    GsfInfile*  gsf_infile_stdio_new            (char const *root,
                                                 GError **err);

`root` : | in locale dependent encoding
`err` : | optionally NULL.
Returns : | a new file or NULL.