View source code
Display the source code in std/mmfile.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Class std.mmfile.MmFile
MmFile objects control the memory mapped file resource.
class MmFile
;
Constructors
Name | Description |
---|---|
this
(filename)
|
Open memory mapped file filename for reading. File is closed when the object instance is deleted. |
this
(filename, mode, size, address, window)
|
Open memory mapped file filename in mode. File is closed when the object instance is deleted. |
Properties
Name | Type | Description |
---|---|---|
length [get]
|
ulong | Gives size in bytes of the memory mapped file. |
Methods
Name | Description |
---|---|
mode
()
|
Read-only property returning the file mode. |
opIndex
(i)
|
Returns byte at index i in file. |
opIndexAssign
(value, i)
|
Sets and returns byte at index i in file to value. |
opSlice
()
|
Returns entire file contents as an array. |
opSlice
(i1, i2)
|
Returns slice of file contents as an array. |
factory
(classname)
|
Create instance of class specified by the fully qualified name classname. The class must either have no constructors or have a default constructor. |
opCmp
(o)
|
Compare with another Object obj. |
opEquals
(o)
|
Test whether this is equal to o .
The default implementation only compares by identity (using the is operator).
Generally, overrides and overloads for opEquals should attempt to compare objects by their contents.
A class will most likely want to add an overload that takes your specific type as the argument
and does the content comparison. Then you can override this and forward it to your specific
typed overload with a cast. Remember to check for null on the typed overload.
|
toHash
()
|
Compute hash function for Object. |
toString
()
|
Convert Object to a human readable string. |
Enums
Name | Description |
---|---|
Mode
|
The mode the memory mapped file is opened with. |
Aliases
Name | Description |
---|---|
opDollar
|
Forwards length .
|
Example
Read an existing file
import std .file;
write(deleteme, "hello"); // deleteme is a temporary filename
scope(exit) remove(deleteme);
// Use a scope class so the file will be closed at the end of this function
scope mmfile = new MmFile(deleteme);
writeln(mmfile .length); // "hello".length
// Access file contents with the slice operator
// This is typed as `void[]`, so cast to `char[]` or `ubyte[]` to use it
const data = cast(const(char)[]) mmfile[];
// At this point, the file content may not have been read yet.
// In that case, the following memory access will intentionally
// trigger a page fault, causing the kernel to load the file contents
writeln(data[0 .. 5]); // "hello"
Example
Write a new file
import std .file;
scope(exit) remove(deleteme);
scope mmfile = new MmFile(deleteme, MmFile .Mode .readWriteNew, 5, null);
writeln(mmfile .length); // 5
auto data = cast(ubyte[]) mmfile[];
// This write to memory will be reflected in the file contents
data[] = '\n';
mmfile .flush();
writeln(read(deleteme)); // "\n\n\n\n\n"
Authors
Walter Bright, Matthew Wilson
License
Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.