On Saturday, August 03, 2013 23:10:12 John Colvin wrote: > On Saturday, 3 August 2013 at 18:23:58 UTC, Gary Willoughby wrote: > > On Saturday, 3 August 2013 at 18:14:47 UTC, Gary Willoughby > > > > wrote: > >> This sounds a great idea but once the file has been opened as > >> a MmFile how to i convert this to a ubyte[] so the > >> std.bitmanip functions work with it? > > > > I'm currently doing this: > > auto file = new MmFile("file.dat"); > > ubyte[] buffer = cast(ubyte[])file[]; > > buffer.read!uint(); //etc. > > > > Is this how you would recommend? > > That defeats the object of memory mapping, as the [] at the end > of cast(ubyte[])file[] implies copying the whole file in to > memory.
Are you sure about that? Maybe I'm just not familiar enough with mmap, but I don't see anything in MmFile which would result in it copying the whole file into memory. I guess that I'll have to do some more reading up on mmap. Certainly, if slicing it like that copies it all into memory, that's a big problem. - Jonathan M Davis