## camel-file-utils

camel-file-utils

## Functions

gint | camel_file_util_encode_fixed_int32 ()
gint | camel_file_util_decode_fixed_int32 ()
gint | camel_file_util_encode_uint32 ()
gint | camel_file_util_decode_uint32 ()
gint | camel_file_util_encode_time_t ()
gint | camel_file_util_decode_time_t ()
gint | camel_file_util_encode_off_t ()
gint | camel_file_util_decode_off_t ()
gint | camel_file_util_encode_gsize ()
gint | camel_file_util_decode_gsize ()
gint | camel_file_util_encode_string ()
gint | camel_file_util_decode_string ()
gint | camel_file_util_encode_fixed_string ()
gint | camel_file_util_decode_fixed_string ()
gchar * | camel_file_util_safe_filename ()
gssize | camel_read ()
gssize | camel_write ()
gchar * | camel_file_util_savename ()

## Types and Values

#define | O_BINARY

## Description

## Functions

### camel_file_util_encode_fixed_int32 ()

    gint
    camel_file_util_encode_fixed_int32 (FILE *out,
                                        gint32 value);

Encode a gint32, performing no compression, but converting to network order.

#### Parameters

out | file to output to |
value | value to output |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_decode_fixed_int32 ()

    gint
    camel_file_util_decode_fixed_int32 (FILE *in,
                                        gint32 *dest);

Retrieve a gint32.

#### Parameters

in | file to read from |
dest | pointer to a variable to store the value in |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_encode_uint32 ()

    gint
    camel_file_util_encode_uint32 (FILE *out,
                                   guint32 value);

Utility function to save an uint32 to a file.

#### Parameters

out | file to output to |
value | value to output |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_decode_uint32 ()

    gint
    camel_file_util_decode_uint32 (FILE *in,
                                   guint32 *dest);

Retrieve an encoded uint32 from a file.

#### Parameters

in | file to read from |
dest | pointer to a variable to store the value in |

#### Returns

`0` on success, `-1` on error. @*dest will contain the decoded value.

### camel_file_util_encode_time_t ()

    gint
    camel_file_util_encode_time_t (FILE *out,
                                   time_t value);

Encode a time_t value to the file.

#### Parameters

out | file to output to |
value | value to output |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_decode_time_t ()

    gint
    camel_file_util_decode_time_t (FILE *in,
                                   time_t *dest);

Decode a time_t value.

#### Parameters

in | file to read from |
dest | pointer to a variable to store the value in |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_encode_off_t ()

    gint
    camel_file_util_encode_off_t (FILE *out,
                                  off_t value);

Encode an off_t type.

#### Parameters

out | file to output to |
value | value to output |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_decode_off_t ()

    gint
    camel_file_util_decode_off_t (FILE *in,
                                  off_t *dest);

Decode an off_t type.

#### Parameters

in | file to read from |
dest | pointer to a variable to put the value in |

#### Returns

`0` on success, `-1` on failure.

### camel_file_util_encode_gsize ()

    gint
    camel_file_util_encode_gsize (FILE *out,
                                  gsize value);

Encode an gsize type.

#### Parameters

out | file to output to |
value | value to output |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_decode_gsize ()

    gint
    camel_file_util_decode_gsize (FILE *in,
                                  gsize *dest);

Decode an gsize type.

#### Parameters

in | file to read from |
dest | pointer to a variable to put the value in |

#### Returns

`0` on success, `-1` on failure.

### camel_file_util_encode_string ()

    gint
    camel_file_util_encode_string (FILE *out,
                                   const gchar *str);

Encode a normal string and save it in the output file.

#### Parameters

out | file to output to |
str | value to output |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_decode_string ()

    gint
    camel_file_util_decode_string (FILE *in,
                                   gchar **str);

Decode a normal string from the input file.

#### Parameters

in | file to read from |
str | pointer to a variable to store the value in |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_encode_fixed_string ()

    gint
    camel_file_util_encode_fixed_string (FILE *out,
                                         const gchar *str,
                                         gsize len);

Encode a normal string and save it in the output file. Unlike `camel_file_util_encode_string` , it pads the `str` with "NULL" bytes, if `len` is > strlen(str)

#### Parameters

out | file to output to |
str | value to output |
len | total-len of str to store |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_decode_fixed_string ()

    gint
    camel_file_util_decode_fixed_string (FILE *in,
                                         gchar **str,
                                         gsize len);

Decode a normal string from the input file.

#### Parameters

in | file to read from |
str | pointer to a variable to store the value in |
len | total-len to decode. |

#### Returns

`0` on success, `-1` on error.

### camel_file_util_safe_filename ()

    gchar *
    camel_file_util_safe_filename (const gchar *name);

'Flattens' `name` into a safe filename string by hex encoding any chars that may cause problems on the filesystem.

#### Parameters

name | string to 'flattened' into a safe filename |

#### Returns

a safe filename string.

### camel_read ()

    gssize
    camel_read (gint fd,
                gchar *buf,
                gsize n,
                GCancellable *cancellable,
                GError **error);

Cancellable libc `read()` replacement.

Code that intends to be portable to Win32 should call this function only on file descriptors returned from `open()`, not on sockets.

#### Parameters

fd | file descriptor |
buf | buffer to fill |
n | number of bytes to read into `buf` |
cancellable | optional GCancellable object, or `NULL` |
error | return location for a GError, or `NULL` |

#### Returns

number of bytes read or -1 on fail. On failure, errno will be set appropriately.

### camel_write ()

    gssize
    camel_write (gint fd,
                 const gchar *buf,
                 gsize n,
                 GCancellable *cancellable,
                 GError **error);

Cancellable libc `write()` replacement.

Code that intends to be portable to Win32 should call this function only on file descriptors returned from `open()`, not on sockets.

#### Parameters

fd | file descriptor |
buf | buffer to write |
n | number of bytes of `buf` to write |
cancellable | optional GCancellable object, or `NULL` |
error | return location for a GError, or `NULL` |

#### Returns

number of bytes written or -1 on fail. On failure, errno will be set appropriately.

### camel_file_util_savename ()

    gchar *
    camel_file_util_savename (const gchar *filename);

Builds a pathname where the basename is of the form ".#" + the basename of `filename` , for instance used in a two-stage commit file write.

#### Parameters

filename | a pathname |

#### Returns

The new pathname. It must be free'd with `g_free()`.

## Types and Values

### O_BINARY

    #define O_BINARY 0