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
struct
FileMapping
(Datum);Encapsulated management of a memory-mapped file.
Parameters
Datum
the mapped data type: Use a POD of size 1 for read/write mapping and a
const
version 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. Iffilename
Datum
isconst
, 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
Datum
is 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,handle
is valid butdata
isnull
. This state is valid and accounted for.Parameters
char*
filename
the name of the file to be mapped in memory
-
Declaration
void
close
();Frees resources associated with this mapping. However, it does not deallocate the name. Reinitializes
this
as a fresh object that can be reused. -
Declaration
bool
discard
();Deletes the underlying file and frees all resources associated. Reinitializes
this
as 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
stderr
and returnsfalse
to the caller. The underlying rationale is to give the caller the option to continue execution if deleting the file is not important.Return Value
true
iff the file was successfully deleted. If the file was not deleted, prints a message tostderr
and returnsfalse
. -
Declaration
const pure nothrow @nogc bool
active
();Queries whether
this
is currently associated with a file.Return Value
true
iff there is anactive
mapping. -
Declaration
const pure nothrow @nogc @safe size_t
length
();Queries the
length
of the file associated with this mapping. If not active, returns 0.Return Value
the
length
of the file, or 0 if no file associated. -
Declaration
pure nothrow @nogc @safe auto
opSlice
();Get a slice to the contents of the entire file.
Return Value
the contents of the file. If not active, returns the
null
slice. -
Declaration
pure void
resize
(size_tsize
);Resizes the file and mapping to the specified
.size
Parameters
size_t
size
new length requested
-
Declaration
bool
moveToFile
(const char*filename
);Unconditionally and destructively moves the underlying file to
. If the operation succeeds, returnsfilename
true
. Upon failure, prints a message tostderr
and returnsfalse
. In all cases it closes the underlying file.Parameters
char*
filename
zero-terminated name of the file to move to.
Return Value
true
iff the operation was successful.
-
-
Declaration
static nothrow bool
writeFile
(const(char)*name
, const void[]data
);Write a file, returning
true
on success. -
Declaration
bool
touchFile
(const char*namez
);Touch a file to current date