mirror of
https://github.com/vimpunk/mio.git
synced 2025-12-06 16:57:01 +08:00
Update README.md
This commit is contained in:
parent
dcfce4d0ca
commit
15fc031b9d
13
README.md
13
README.md
@ -1,8 +1,15 @@
|
|||||||
# mio
|
# mio
|
||||||
A simple header-only cross-platform C++11 memory mapping library with an MIT license.
|
A simple header-only cross-platform C++11 memory mapping library with an MIT license.
|
||||||
|
|
||||||
## Example
|
mio has been created with the goal to be easily includable (i.e. no dependencies) in any C++ project that needs memory mapped file IO without the need to pull in Boost.
|
||||||
There are three ways to a create a mapping:
|
|
||||||
|
The primary motivation for writing this library instead of using Boost.Iostreams, was the lack of support for establishing a memory mapping with an already open file handle/descriptor. This is possible with mio.
|
||||||
|
|
||||||
|
Albeit a minor nitpick, Boost.Iostreams implements memory mapped file IO with a `std::shared_ptr` to provide shared semantics, even if not needed, and the overhead of the heap allocation may be unnecessary and/or unwanted.
|
||||||
|
In mio, there are two classes to cover the two use-cases: one that is move-only (basically a zero-cost abstraction over the system specific mmapping functions), and the other that acts just like its Boost.Iostreams counterpart, with shared semantics.
|
||||||
|
|
||||||
|
## Create a mapping
|
||||||
|
There are three ways to do that:
|
||||||
|
|
||||||
- Using the constructor, which throws on failure:
|
- Using the constructor, which throws on failure:
|
||||||
```c++
|
```c++
|
||||||
@ -40,7 +47,7 @@ int main()
|
|||||||
```
|
```
|
||||||
However, mio does not check whether the provided file descriptor has the same access permissions as the desired mapping, so the mapping may fail.
|
However, mio does not check whether the provided file descriptor has the same access permissions as the desired mapping, so the mapping may fail.
|
||||||
|
|
||||||
General usage:
|
## Example
|
||||||
```c++
|
```c++
|
||||||
#include <mio/mmap.hpp>
|
#include <mio/mmap.hpp>
|
||||||
#include <system_error> // for std::error_code
|
#include <system_error> // for std::error_code
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user