File: README.md

package info (click to toggle)
acl2 8.6%2Bdfsg-2
  • links: PTS
  • area: main
  • in suites: trixie
  • size: 1,111,420 kB
  • sloc: lisp: 17,818,294; java: 125,359; python: 28,122; javascript: 23,458; cpp: 18,851; ansic: 11,569; perl: 7,678; xml: 5,591; sh: 3,976; makefile: 3,833; ruby: 2,633; yacc: 1,126; ml: 763; awk: 295; csh: 233; lex: 197; php: 178; tcl: 49; asm: 23; haskell: 17
file content (20 lines) | stat: -rw-r--r-- 916 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## About MMAP
This is a utility library providing access to the `mmap` family of functions in a portable way. It should work on Posix and Windows systems. `mmap` allows you to directly map a file into the address space of your process without having to manually read it into memory sequentially. Typically this is much more efficient for files that are larger than a few Kb.

## Supported operations
The library offers access to the following functions:

* `mmap`
* `munmap`
* `msync`
* `mprotect`

It also provides a convenience macro called `with-mmap` to perform safe, local mappings of files.

    (mmap:with-mmap (addr fd size #p"/etc/lsb-release")
      (with-output-to-string (out)
        (loop for i from 0 below size
              for char = (code-char (cffi:mem-aref addr :char i))
              do (write-char char out))))

If you're on a system where mmap is supported, `:mmap` will be in `*features*`.