Implementing portable memory-mapped files