dmd.common.file
File utilities.
Discussion
Functions and objects dedicated to file I/O and management. TODO: Move here artifacts
from places such as root/ so both the frontend and the backend have access to them.
License
Source: common/file.d
Documentation: https://dlang.org/phobos/dmd_common_file.html
-
Declaration
structFileMapping(Datum);Encapsulated management of a memory-mapped file.
Parameters
Datumthe mapped data type: Use a POD of size 1 for read/write mapping and a
constversion thereof for read-only mapping. Other primitive types should work, but have not been yet tested.-
Declaration
this(const char*filename);Open
and map it in memory. IffilenameDatumisconst, opens for read-only and maps the content in memory; no error is issued if the file does not exist. This makes it easy to treat a non-existing file as empty.Discussion
If
Datumis mutable, opens for read/write (creates file if it does not exist) and fails fatally on any error.
Due to quirks inmmap, if the file is empty,handleis valid butdataisnull. This state is valid and accounted for.Parameters
char*filenamethe name of the file to be mapped in memory
-
Declaration
voidclose();Frees resources associated with this mapping. However, it does not deallocate the name. Reinitializes
thisas a fresh object that can be reused. -
Declaration
booldiscard();Deletes the underlying file and frees all resources associated. Reinitializes
thisas a fresh object that can be reused.Discussion
This function does not abort if the file cannot be deleted, but does print a message on
stderrand returnsfalseto the caller. The underlying rationale is to give the caller the option to continue execution if deleting the file is not important.Return Value
trueiff the file was successfully deleted. If the file was not deleted, prints a message tostderrand returnsfalse. -
Declaration
const pure nothrow @nogc boolactive();Queries whether
thisis currently associated with a file.Return Value
trueiff there is anactivemapping. -
Declaration
const pure nothrow @nogc @safe size_tlength();Queries the
lengthof the file associated with this mapping. If not active, returns 0.Return Value
the
lengthof the file, or 0 if no file associated. -
Declaration
pure nothrow @nogc @safe autoopSlice();Get a slice to the contents of the entire file.
Return Value
the contents of the file. If not active, returns the
nullslice. -
Declaration
pure voidresize(size_tsize);Resizes the file and mapping to the specified
.sizeParameters
size_tsizenew length requested
-
Declaration
boolmoveToFile(const char*filename);Unconditionally and destructively moves the underlying file to
. If the operation succeeds, returnsfilenametrue. Upon failure, prints a message tostderrand returnsfalse. In all cases it closes the underlying file.Parameters
char*filenamezero-terminated name of the file to move to.
Return Value
trueiff the operation was successful.
-
-
Declaration
static nothrow boolwriteFile(const(char)*name, const void[]data);Write a file, returning
trueon success. -
Declaration
nothrow booltouchFile(const char*namez);Touch a file to current date