##### basic_file::basic_file (3 of 10 overloads)

Construct and open a `basic_file`.

    basic_file(
        const executor_type & ex,
        const char * path,
        file_base::flags open_flags);

This constructor initialises a file and opens it.

###### Parameters

ex

  The I/O executor that the file will use, by default, to dispatch handlers for any asynchronous operations performed on the file.

path

  The path name identifying the file to be opened.

open_flags

  A set of flags that determine how the file should be opened.

Exactly one of the following `file_base::flags` values must be specified:

- flags::read_only
- flags::write_only
- flags::read_write

The following flags may be bitwise or-ed in addition:

- flags::append
- flags::create
- flags::exclusive
- flags::truncate
- flags::sync_all_on_write