Skip to content

Memory mapping files on POSIX and Windows for C++ 2011

License

Notifications You must be signed in to change notification settings

codylico/mmaptwo-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mmaptwo-plus

The mmaptwo-plus library aims to provide an API for interacting with files through mapping to memory.

Goals

This project aims to provide easy-to-use access to the memory mapping on Unix and Windows. The target API language is C++ 2011. In addition:

  • The API should provide a base interface for file accesses.

  • The interface should be simple and orthogonal.

  • The interface should allow for mapping a file multiple times without needing to close the file between each mapping.

  • The source should not use more language features or libraries than necessary, and should not be larger (in lines of code) than needed.

  • The library should throw exceptions where appropriate, without causing an application to terminate without recourse.

Build

This project uses CMake for building. Developers can obtain CMake from the following URL: https://cmake.org/download/

To use CMake with this project, first make a directory to hold the build results. Then run CMake in the directory with a path to the source code. On UNIX, the commands would look like the following:

mkdir build
cd build
cmake ../mmaptwo-plus

Running CMake should create a build project, which then can be processed using other tools. Usually, the tool would be Makefile or a IDE project. For Makefiles, use the following command to build the project:

make

For IDE projects, the IDE must be installed and ready to use. Open the project within the IDE.

Since this project's source only holds two files, developers could also use these files independently from CMake.

License

This project uses the Unlicense, which makes the source effectively public domain. Go to http://unlicense.org/ to learn more about the Unlicense.

Contributions to this project should likewise be provided under a public domain dedication.