## CamelStreamFs

CamelStreamFs

## Synopsis

    struct              CamelStreamFs;
    CamelStream *       camel_stream_fs_new_with_name       (const char *name,
                                                             int flags,
                                                             mode_t mode);
    CamelStream *       camel_stream_fs_new_with_name_and_bounds
                                                            (const char *name,
                                                             int flags,
                                                             mode_t mode,
                                                             off_t start,
                                                             off_t end);
    CamelStream *       camel_stream_fs_new_with_fd         (int fd);
    CamelStream *       camel_stream_fs_new_with_fd_and_bounds
                                                            (int fd,
                                                             off_t start,
                                                             off_t end);

## Description

## Details

### struct CamelStreamFs

    struct CamelStreamFs {
    	CamelSeekableStream parent_object;

    	int fd;             /* file descriptor on the underlying file */
    };

### camel_stream_fs_new_with_name ()

    CamelStream *       camel_stream_fs_new_with_name       (const char *name,
                                                             int flags,
                                                             mode_t mode);

Creates a new CamelStreamFs corresponding to the named file, flags, and mode.

`name` : | a local filename
`flags` : | flags as in open(2)
`mode` : | a file mode
Returns : | the new stream, or `NULL` on error.

### camel_stream_fs_new_with_name_and_bounds ()

    CamelStream *       camel_stream_fs_new_with_name_and_bounds
                                                            (const char *name,
                                                             int flags,
                                                             mode_t mode,
                                                             off_t start,
                                                             off_t end);

Creates a new CamelStream corresponding to the given arguments.

`name` : | a local filename
`flags` : | flags as in open(2)
`mode` : | a file mode
`start` : | the first valid position in the file
`end` : | the first invalid position in the file, or CAMEL_STREAM_UNBOUND
Returns : | the stream, or `NULL` on error.

### camel_stream_fs_new_with_fd ()

    CamelStream *       camel_stream_fs_new_with_fd         (int fd);

Creates a new fs stream using the given file descriptor `fd` as the backing store. When the stream is destroyed, the file descriptor will be closed.

`fd` : | a file descriptor
Returns : | a new CamelStreamFs

### camel_stream_fs_new_with_fd_and_bounds ()

    CamelStream *       camel_stream_fs_new_with_fd_and_bounds
                                                            (int fd,
                                                             off_t start,
                                                             off_t end);

Gets a stream associated with the given file descriptor and bounds. When the stream is destroyed, the file descriptor will be closed.

`fd` : | a file descriptor
`start` : | the first valid position in the file
`end` : | the first invalid position in the file, or CAMEL_STREAM_UNBOUND
Returns : | the bound stream