### Files

| Note
This feature requires I/O completion ports on Windows, and io_uring on Linux (define `ASIO_HAS_IO_URING` to enable).

Asio provides support for manipulating stream-oriented and random-access files. For example, to write to a newly created stream-oriented file:

    asio::stream_file file(
        my_io_context, "/path/to/file",
        asio::stream_file::write_only
          | asio::stream_file::create
          | asio::stream_file::truncate);

    file.async_write_some(my_buffer,
        [](error_code e, size_t n)
        {
          // ...
        });

or to read from a random-access file:

    asio::random_access_file file(
        my_io_context, "/path/to/file",
        asio::random_access_file::read_only);

    file.async_read_some_at(1234, my_buffer,
        [](error_code e, size_t n)
        {
          // ...
        });

##### See Also

basic_file, basic_random_access_file, basic_stream_file, file_base, random_access_file, stream_file.