dmd.root.file

Read a file from disk and store it in memory.

Authors

Walter Bright, https://www.digitalmars.com

Source: root/file.d

  • Declaration

    struct Buffer;

    Owns a (rmem-managed) 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);

      Read the full content of a file.

    • Declaration

      static nothrow bool write(const(char)* name, const void[] data);
      static nothrow bool write(const(char)[] name, const void[] data);

      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 bool update(const(char)[] name, const void[] data);

      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 to update

      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 filename

      Return Value

      ulong.max on any error, the length otherwise.