File: README.md

package info (click to toggle)
acl2 8.5dfsg-5
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 991,452 kB
  • sloc: lisp: 15,567,759; javascript: 22,820; cpp: 13,929; ansic: 12,092; perl: 7,150; java: 4,405; xml: 3,884; makefile: 3,507; sh: 3,187; ruby: 2,633; ml: 763; python: 746; yacc: 723; awk: 295; csh: 186; php: 171; lex: 154; tcl: 49; asm: 23; haskell: 17
file content (19 lines) | stat: -rw-r--r-- 836 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
## 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))))