dmd.root.file
Read a file
from disk and store it in memory.
License
Source: root/file.d
Documentation: https://dlang.org/phobos/dmd_root_file.html
-
Declaration
struct
FileBuffer
;Owns a (rmem-managed) file buffer.
-
Declaration
pure nothrow @nogc @safe ubyte[]
extractSlice
();Transfers ownership of the buffer to the caller.
-
-
Declaration
struct
File
;-
Declaration
struct
ReadResult
;-
Declaration
pure nothrow @nogc @safe ubyte[]
extractSlice
();Transfers ownership of the buffer to the caller.
-
Declaration
pure nothrow @nogc ubyte[]
extractDataZ
();ditto Include the
null
-terminator at the end of the buffer in the returned array.
-
-
Declaration
static nothrow ReadResult
read
(const(char)*name
);
static nothrow ReadResultread
(const(char)[]name
);Read the full content of a file.
-
Declaration
static nothrow bool
write
(const(char)*name
, const void[]data
);
static nothrow boolwrite
(const(char)[]name
, const void[]data
);
static nothrow boolwrite
(const(char)*name
, const(void)*data
, size_tsize
);Write a file, returning
true
on success. -
Declaration
static nothrow void
remove
(const(char)*name
);Delete a file.
-
Declaration
static nothrow bool
update
(const(char)*namez
, const void[]data
);
static nothrow boolupdate
(const(char)[]name
, const void[]data
);
static nothrow boolupdate
(const(char)*name
, const(void)*data
, size_tsize
);Update file
Discussion
If the file exists and is identical to what is to be written, merely
update
the timestamp on the file. Otherwise, write the file.
The idea is writes are much slower than reads, and build systems often wind up generating identical files.Parameters
const(char)[]
name
name
of file toupdate
void[]
data
updated contents of file
Return Value
true
on success -
Declaration
static nothrow ulong
size
(const char*namez
);Size of a file in bytes.
Parameters
char*
namez
null
-terminated filenameReturn Value
ulong.max
on any error, the length otherwise.
-