hi Brian, This is mostly an Arrow platform question so I'm copying the Arrow mailing list.
You can open a file using an existing file descriptor using ReadableFile::Open https://github.com/apache/arrow/blob/master/cpp/src/arrow/io/file.h#L145 The documentation for this function says: "The file descriptor becomes owned by the ReadableFile, and will be closed on Close() or destruction." If you want to do the equivalent thing, but using memory mapping, I think you'll need to add a corresponding API to MemoryMappedFile. This is more perilous because of the API requirements of mmap -- you need to pass the right flags and they may need to be the same flags that were passed when opening the file descriptor, see https://github.com/apache/arrow/blob/master/cpp/src/arrow/io/file.cc#L378 and https://github.com/apache/arrow/blob/master/cpp/src/arrow/io/file.cc#L476 - Wes On Thu, Mar 14, 2019 at 1:47 PM Brian Bowman <brian.bow...@sas.com> wrote: > > The ReadableFile class (arrow/io/file.cc) has utility methods where a > FileDescriptor is either passed in or returned, but I don’t see how this > surfaces through the API. > > Is there a way for application code to control the open lifetime of mmap()’d > Parquet files by passing an already open FileDescriptor to Parquet low-level > API open/close methods? > > Thanks, > > Brian >